1 2 Establish order 1 -> 2 3 Try order 2 -> 1. This gives an error. 4 ---Thread-Announcement------------------------------------------ 5 6 Thread #x is the program's root thread 7 8 ---------------------------------------------------------------- 9 10 Thread #x: lock order "0x........ before 0x........" violated 11 12 Observed (incorrect) order is: acquisition of lock at 0x........ 13 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 14 by 0x........: main (tc15_laog_lockdel.c:35) 15 16 followed by a later acquisition of lock at 0x........ 17 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 18 by 0x........: main (tc15_laog_lockdel.c:36) 19 20 Required order was established by acquisition of lock at 0x........ 21 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 22 by 0x........: main (tc15_laog_lockdel.c:27) 23 24 followed by a later acquisition of lock at 0x........ 25 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 26 by 0x........: main (tc15_laog_lockdel.c:28) 27 28 Free 2 and re-allocate it. This gives it a new identity, 29 so a second locking sequence 2 -> 1 should now be OK. 30 done 31 32 ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) 33