- deadlock: each thread acquires locks in reverse order → deadlock possible. (the script does not block forever: uses timeout and reports) - ordered: enforces global lock ordering → avoids deadlock.