$ ./ruby --disable=gems mutex_bug.rb # c-return mutex_bug.rb:35 set_trace_func Kernel 0 # line mutex_bug.rb:53 0 # c-call mutex_bug.rb:41 times Integer 0 # c-return mutex_bug.rb:41 times Integer 0 # c-call mutex_bug.rb:41 map Enumerable 0 # c-call mutex_bug.rb:41 each Enumerator 0 # c-call mutex_bug.rb:41 times Integer 0 # line mutex_bug.rb:42 0 # c-call mutex_bug.rb:42 new Thread 0 # c-call mutex_bug.rb:42 initialize Thread 0 # c-return mutex_bug.rb:42 initialize Thread 0 # c-return mutex_bug.rb:42 new Thread 0 # line mutex_bug.rb:42 0 # line mutex_bug.rb:43 0 # c-call mutex_bug.rb:42 new Thread 0 # c-call mutex_bug.rb:43 times Integer 0 # c-call mutex_bug.rb:42 initialize Thread 0 # line mutex_bug.rb:44 0 # c-return mutex_bug.rb:42 initialize Thread 0 # line mutex_bug.rb:43 0 # c-call mutex_bug.rb:44 new Thread 0 # c-call mutex_bug.rb:43 times Integer 0 # c-return mutex_bug.rb:42 new Thread 0 # c-call mutex_bug.rb:44 initialize Thread 0 # c-return mutex_bug.rb:41 times Integer 0 # c-return mutex_bug.rb:44 initialize Thread 0 # line mutex_bug.rb:44 0 # line mutex_bug.rb:45 0 # c-return mutex_bug.rb:44 new Thread 0 # c-return mutex_bug.rb:41 each Enumerator 0 # call mutex_bug.rb:26 stuff MyMonitor 0 # c-call mutex_bug.rb:44 new Thread 0 # line mutex_bug.rb:48 0 # c-return mutex_bug.rb:41 map Enumerable 0 # line mutex_bug.rb:27 stuff MyMonitor 0 # c-call mutex_bug.rb:44 initialize Thread 0 # c-call mutex_bug.rb:53 to_proc Symbol 0 # call mutex_bug.rb:26 stuff MyMonitor 0 # call mutex_bug.rb:10 mon_enter MyMonitor 0 # line mutex_bug.rb:45 0 # line mutex_bug.rb:27 stuff MyMonitor 0 # c-return mutex_bug.rb:53 to_proc Symbol 0 # call mutex_bug.rb:26 stuff MyMonitor 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # c-call mutex_bug.rb:53 each Array 0 # line mutex_bug.rb:27 stuff MyMonitor 0 # c-return mutex_bug.rb:44 initialize Thread 0 # c-call mutex_bug.rb:53 join Thread 0 # c-call mutex_bug.rb:11 current Thread 0 # call mutex_bug.rb:10 mon_enter MyMonitor 0 # call mutex_bug.rb:10 mon_enter MyMonitor 0 # c-return mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:44 new Thread 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # line mutex_bug.rb:48 0 # c-call mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # call mutex_bug.rb:26 stuff MyMonitor 0 # c-return mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # c-return mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:27 stuff MyMonitor 0 # c-call mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # call mutex_bug.rb:10 mon_enter MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:11 current Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:12 lock Mutex # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:46 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:46 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:49 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:49 kill Thread 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:49 kill Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # line mutex_bug.rb:50 # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:46 sleep Kernel # 1 # c-call mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:45 # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 0 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:27 stuff MyMonitor # 0 # call mutex_bug.rb:10 mon_enter MyMonitor # 0 # line mutex_bug.rb:11 mon_enter MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # c-call mutex_bug.rb:11 current Thread # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-return mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-call mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # line mutex_bug.rb:49 0 # c-call mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:50 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:50 join Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:50 join Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:44 # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:44 new Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 write IO # 1 # line mutex_bug.rb:48 # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:12 mon_enter MyMonitor # 0 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-call mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # c-call mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:46 0 # c-call mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:49 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:49 kill Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:46 sleep Kernel # 0 # c-return mutex_bug.rb:49 kill Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:50 # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 write IO # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:44 new Thread # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:48 # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # c-call mutex_bug.rb:11 current Thread # 0 # call mutex_bug.rb:10 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:11 mon_enter MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:46 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:49 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:46 sleep Kernel 0 # c-return mutex_bug.rb:49 kill Thread 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # line mutex_bug.rb:50 0 # c-call mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:50 join Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:50 join Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # line mutex_bug.rb:44 # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:44 new Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:45 # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:44 new Thread # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # c-call mutex_bug.rb:12 lock Mutex # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # c-return mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:12 mon_enter MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # c-call mutex_bug.rb:12 lock Mutex # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # line mutex_bug.rb:46 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:49 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:49 kill Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:49 kill Thread # 0 # c-return mutex_bug.rb:46 sleep Kernel # 0 # line mutex_bug.rb:50 # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:50 join Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-return mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 write IO # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # c-return mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # c-call mutex_bug.rb:12 lock Mutex # 1 # c-return mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # c-call mutex_bug.rb:12 lock Mutex # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:46 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:49 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:49 kill Thread 0 # line mutex_bug.rb:50 0 # c-return mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:46 sleep Kernel 0 # c-call mutex_bug.rb:50 join Thread 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-return mutex_bug.rb:50 join Thread 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:44 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:44 new Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:44 initialize Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:45 # 1 # c-call mutex_bug.rb:28 write IO # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:28 write IO # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # c-return mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # c-call mutex_bug.rb:12 lock Mutex # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:27 stuff MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # call mutex_bug.rb:10 mon_enter MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-call mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:46 0 # c-call mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # line mutex_bug.rb:49 0 # c-call mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:49 kill Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # line mutex_bug.rb:50 # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:46 sleep Kernel # 0 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 write IO # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:44 new Thread # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # line mutex_bug.rb:48 # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:11 mon_enter MyMonitor # 0 # call mutex_bug.rb:10 mon_enter MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # c-call mutex_bug.rb:11 current Thread # 0 # line mutex_bug.rb:11 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-return mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:49 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:49 kill Thread # 0 # return mutex_bug.rb:15 mon_enter MyMonitor # 0 # line mutex_bug.rb:50 # 0 # return mutex_bug.rb:27 stuff MyMonitor # 0 # c-call mutex_bug.rb:50 join Thread # 0 # c-return mutex_bug.rb:12 lock Mutex # 0 # c-return mutex_bug.rb:50 join Thread # 0 # line mutex_bug.rb:13 mon_enter MyMonitor # 0 # line mutex_bug.rb:44 # 0 # c-call mutex_bug.rb:13 current Thread # 0 # c-call mutex_bug.rb:44 new Thread # 0 # c-return mutex_bug.rb:13 current Thread # 0 # c-call mutex_bug.rb:44 initialize Thread # 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:44 initialize Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # line mutex_bug.rb:45 # 1 # line mutex_bug.rb:48 # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:12 lock Mutex # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:12 mon_enter MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:46 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:49 0 # c-call mutex_bug.rb:49 kill Thread 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:50 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:50 join Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:50 join Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # c-return mutex_bug.rb:28 write IO # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # c-call mutex_bug.rb:11 current Thread # 1 # c-return mutex_bug.rb:11 current Thread # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread # 1 # c-call mutex_bug.rb:12 lock Mutex # 0 # line mutex_bug.rb:12 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:12 lock Mutex # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:46 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # line mutex_bug.rb:49 0 # c-call mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:46 sleep Kernel # 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # line mutex_bug.rb:50 # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:50 join Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-return mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:28 write IO # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # line mutex_bug.rb:48 # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # c-call mutex_bug.rb:11 current Thread # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # line mutex_bug.rb:27 stuff MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread 0 # call mutex_bug.rb:10 mon_enter MyMonitor 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-call mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:13 current Thread 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # line mutex_bug.rb:46 # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:46 sleep Kernel # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:49 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:50 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:50 join Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:50 join Thread # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:44 new Thread # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 write IO # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # c-return mutex_bug.rb:11 current Thread # 1 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 1 # line mutex_bug.rb:12 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:11 current Thread # 0 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # c-return mutex_bug.rb:11 current Thread # 0 # c-call mutex_bug.rb:12 lock Mutex # 0 # line mutex_bug.rb:12 mon_enter MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # c-call mutex_bug.rb:12 lock Mutex # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:46 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:46 sleep Kernel # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:49 0 # c-return mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:49 kill Thread 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:49 kill Thread # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:46 sleep Kernel # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:50 # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:50 join Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # line mutex_bug.rb:44 # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:45 # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:27 stuff MyMonitor # 1 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # call mutex_bug.rb:26 stuff MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # call mutex_bug.rb:10 mon_enter MyMonitor # 0 # line mutex_bug.rb:27 stuff MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # call mutex_bug.rb:10 mon_enter MyMonitor 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # c-call mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-call mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:46 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # c-call mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:12 lock Mutex # 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # c-call mutex_bug.rb:12 lock Mutex # 0 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-call mutex_bug.rb:28 write IO # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # c-return mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # line mutex_bug.rb:49 0 # c-call mutex_bug.rb:13 current Thread 0 # c-call mutex_bug.rb:49 kill Thread 0 # c-return mutex_bug.rb:13 current Thread 0 # c-return mutex_bug.rb:46 sleep Kernel 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-return mutex_bug.rb:49 kill Thread 0 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:50 # 1 # line mutex_bug.rb:28 stuff MyMonitor # 1 # c-call mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 print Kernel # 1 # c-return mutex_bug.rb:50 join Thread # 1 # c-call mutex_bug.rb:28 write IO # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:28 to_s NilClass # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-return mutex_bug.rb:28 to_s NilClass # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:28 write IO # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # line mutex_bug.rb:45 # 1 # c-return mutex_bug.rb:28 print Kernel # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:29 stuff MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # call mutex_bug.rb:18 mon_exit MyMonitor # 1 # line mutex_bug.rb:48 # 1 # line mutex_bug.rb:19 mon_exit MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:20 mon_exit MyMonitor # 0 # call mutex_bug.rb:10 mon_enter MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 0 # line mutex_bug.rb:21 mon_exit MyMonitor # 0 # line mutex_bug.rb:11 mon_enter MyMonitor # 0 # line mutex_bug.rb:22 mon_exit MyMonitor 0 # call mutex_bug.rb:10 mon_enter MyMonitor 0 # c-call mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:11 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # line mutex_bug.rb:11 mon_enter MyMonitor 0 # c-call mutex_bug.rb:11 current Thread 0 # c-call mutex_bug.rb:22 unlock Mutex 0 # c-call mutex_bug.rb:12 lock Mutex 0 # c-return mutex_bug.rb:12 lock Mutex 0 # line mutex_bug.rb:13 mon_enter MyMonitor 0 # c-return mutex_bug.rb:11 current Thread 0 # c-return mutex_bug.rb:22 unlock Mutex 0 # c-call mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:12 mon_enter MyMonitor 0 # return mutex_bug.rb:24 mon_exit MyMonitor 0 # c-call mutex_bug.rb:12 lock Mutex 0 # return mutex_bug.rb:30 stuff MyMonitor 0 # c-return mutex_bug.rb:13 current Thread 0 # line mutex_bug.rb:49 0 # line mutex_bug.rb:15 mon_enter MyMonitor # 0 # c-call mutex_bug.rb:49 kill Thread # 0 # c-return mutex_bug.rb:49 kill Thread # 1 # return mutex_bug.rb:16 mon_enter MyMonitor # 1 # line mutex_bug.rb:50 # 1 # return mutex_bug.rb:27 stuff MyMonitor # 1 # c-call mutex_bug.rb:50 join Thread # 1 # c-return mutex_bug.rb:50 join Thread # 1 # line mutex_bug.rb:44 # 1 # c-call mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:44 initialize Thread # 1 # c-return mutex_bug.rb:12 lock Mutex # 1 # line mutex_bug.rb:13 mon_enter MyMonitor # 1 # c-return mutex_bug.rb:44 new Thread # 1 # c-call mutex_bug.rb:13 current Thread # 1 # line mutex_bug.rb:45 # 1 # line mutex_bug.rb:48 # 1 # c-return mutex_bug.rb:13 current Thread # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # call mutex_bug.rb:26 stuff MyMonitor # 1 # line mutex_bug.rb:15 mon_enter MyMonitor # 1 # line mutex_bug.rb:27 stuff MyMonitor # 1 # return mutex_bug.rb:16 mon_enter MyMonitor # 2 # call mutex_bug.rb:10 mon_enter MyMonitor # 2 # line mutex_bug.rb:27 stuff MyMonitor # 1 # line mutex_bug.rb:11 mon_enter MyMonitor # 2 # call mutex_bug.rb:10 mon_enter MyMonitor # 2 # line mutex_bug.rb:28 stuff MyMonitor # 2 # line mutex_bug.rb:11 mon_enter MyMonitor # 2 # c-call mutex_bug.rb:11 current Thread # 2 # c-call mutex_bug.rb:11 current Thread # 2 # c-call mutex_bug.rb:28 print Kernel # 2 # c-return mutex_bug.rb:11 current Thread # 2 # c-return mutex_bug.rb:11 current Thread # 2 # line mutex_bug.rb:12 mon_enter MyMonitor # 2 # line mutex_bug.rb:12 mon_enter MyMonitor # 2 # c-call mutex_bug.rb:12 lock Mutex # 2 # c-call mutex_bug.rb:28 write IO # 2 # c-call mutex_bug.rb:12 lock Mutex # 2 # c-call mutex_bug.rb:28 to_s NilClass # 2 # c-return mutex_bug.rb:28 to_s NilClass # 2 # c-return mutex_bug.rb:28 write IO # 2 # c-return mutex_bug.rb:28 print Kernel # 2 # line mutex_bug.rb:29 stuff MyMonitor # 2 # call mutex_bug.rb:18 mon_exit MyMonitor # 2 # line mutex_bug.rb:19 mon_exit MyMonitor # 2 # line mutex_bug.rb:20 mon_exit MyMonitor # 1 # return mutex_bug.rb:24 mon_exit MyMonitor # 1 # return mutex_bug.rb:30 stuff MyMonitor # 1 # line mutex_bug.rb:46 # 1 # c-call mutex_bug.rb:46 sleep Kernel # 1 ^C # c-call mutex_bug.rb:53 new Class # 1 # c-call mutex_bug.rb:53 initialize Interrupt # 1 # c-call mutex_bug.rb:53 initialize SignalException # 1 # c-call mutex_bug.rb:53 initialize Exception # 1 # c-return mutex_bug.rb:53 initialize Exception # 1 # c-return mutex_bug.rb:53 initialize SignalException # 1 # c-return mutex_bug.rb:53 initialize Interrupt # 1 # c-return mutex_bug.rb:53 new Class # 1 # c-call mutex_bug.rb:53 exception Exception # 1 # c-return mutex_bug.rb:53 exception Exception # 1 # c-call mutex_bug.rb:53 backtrace Exception # 1 # c-return mutex_bug.rb:53 backtrace Exception # 1 # raise mutex_bug.rb:53 join Thread # 1 # c-return mutex_bug.rb:53 join Thread # 1 # c-return mutex_bug.rb:53 each Array # 1 mutex_bug.rb:53:in `join': Interrupt from mutex_bug.rb:53:in `each' from mutex_bug.rb:53:in `
'