Establish order 1 -> 2 Try order 2 -> 1. This gives an error. ---Thread-Announcement------------------------------------------ Thread #x is the program's root thread ---------------------------------------------------------------- Thread #x: lock order "0x........ before 0x........" violated Observed (incorrect) order is: acquisition of lock at 0x........ at 0x........: pthread_mutex_lock (hg_intercepts.c:...) by 0x........: main (tc15_laog_lockdel.c:35) followed by a later acquisition of lock at 0x........ at 0x........: pthread_mutex_lock (hg_intercepts.c:...) by 0x........: main (tc15_laog_lockdel.c:36) Required order was established by acquisition of lock at 0x........ at 0x........: pthread_mutex_lock (hg_intercepts.c:...) by 0x........: main (tc15_laog_lockdel.c:27) followed by a later acquisition of lock at 0x........ at 0x........: pthread_mutex_lock (hg_intercepts.c:...) by 0x........: main (tc15_laog_lockdel.c:28) Free 2 and re-allocate it. This gives it a new identity, so a second locking sequence 2 -> 1 should now be OK. done ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)