| |
| 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........: mutex_lock_WRK (hg_intercepts.c:...) |
| by 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........: mutex_lock_WRK (hg_intercepts.c:...) |
| by 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........: mutex_lock_WRK (hg_intercepts.c:...) |
| by 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........: mutex_lock_WRK (hg_intercepts.c:...) |
| by 0x........: pthread_mutex_lock (hg_intercepts.c:...) |
| by 0x........: main (tc15_laog_lockdel.c:28) |
| |
| Lock at 0x........ was first observed |
| at 0x........: pthread_mutex_init (hg_intercepts.c:...) |
| by 0x........: main (tc15_laog_lockdel.c:22) |
| Address 0x........ is 0 bytes inside a block of size 120 alloc'd |
| at 0x........: malloc (vg_replace_malloc.c:...) |
| by 0x........: main (tc15_laog_lockdel.c:16) |
| Block was alloc'd by thread #x |
| |
| Lock at 0x........ was first observed |
| at 0x........: pthread_mutex_init (hg_intercepts.c:...) |
| by 0x........: main (tc15_laog_lockdel.c:23) |
| Address 0x........ is 0 bytes inside a block of size 120 alloc'd |
| at 0x........: malloc (vg_replace_malloc.c:...) |
| by 0x........: main (tc15_laog_lockdel.c:17) |
| Block was alloc'd by thread #x |
| |
| |
| 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) |