| Mutex |   | 55% |   | 67% | 5 | 17 | 21 | 54 | 2 | 11 | 0 | 1 |
| Queue |   | 66% |   | 50% | 9 | 24 | 12 | 49 | 4 | 18 | 0 | 1 |
| ConditionVariable |   | 69% |   | 65% | 7 | 17 | 8 | 44 | 1 | 7 | 0 | 1 |
| Queue.INVOKER.i.0.1.push |  | 0% |  | 0% | 4 | 4 | 0 | 0 | 2 | 2 | 1 | 1 |
| ConditionVariable.INVOKER.i.0.1.wait_ruby |  | 0% |  | 0% | 4 | 4 | 0 | 0 | 2 | 2 | 1 | 1 |
| Mutex.INVOKER.i.sleep |  | 0% | | n/a | 3 | 3 | 0 | 0 | 3 | 3 | 1 | 1 |
| Queue.INVOKER.i.pop |  | 0% | | n/a | 3 | 3 | 0 | 0 | 3 | 3 | 1 | 1 |
| SizedQueue.INVOKER.i.1.0.initialize |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| ConditionVariable.INVOKER.s.0.0.newInstance |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| SizedQueue.INVOKER.i.1.0.max_set |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Mutex.INVOKER.i.0.0.synchronize |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Mutex.INVOKER.s.0.0.newInstance |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| ThreadLibrary |   | 48% | | n/a | 1 | 3 | 1 | 7 | 1 | 3 | 0 | 1 |
| Queue.INVOKER.i.0.0.num_waiting |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Mutex.INVOKER.i.0.0.locked_p |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Queue.INVOKER.i.0.0.length |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Queue.INVOKER.i.0.0.empty_p |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| ConditionVariable.INVOKER.i.0.0.broadcast |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| SizedQueue.INVOKER.i.0.0.clear |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Queue.INVOKER.i.0.0.clear |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Queue.INVOKER.i.0.0.initialize |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Queue.INVOKER.i.0.0.shutdown |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Mutex.INVOKER.i.0.0.unlock |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Mutex.INVOKER.i.0.0.try_lock |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| ConditionVariable.INVOKER.i.0.0.signal |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Queue.INVOKER.i.0.0.marshal_dump |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| SizedQueue.INVOKER.i.0.0.max |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| ConditionVariable.INVOKER.i.0.0.marshal_dump |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| Mutex.INVOKER.i.0.0.lock |  | 0% | | n/a | 2 | 2 | 0 | 0 | 2 | 2 | 1 | 1 |
| ConditionVariable.new ObjectAllocator() {...} |   | 33% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| Mutex.new ObjectAllocator() {...} |   | 33% | | n/a | 1 | 2 | 1 | 2 | 1 | 2 | 0 | 1 |
| SizedQueue |  | 100% |  | 100% | 0 | 8 | 0 | 21 | 0 | 7 | 0 | 1 |
| Queue.new RubyThread.Task() {...} |  | 100% |   | 67% | 2 | 6 | 0 | 8 | 0 | 3 | 0 | 1 |
| Queue.new RubyThread.Task() {...} |  | 100% | | n/a | 0 | 3 | 0 | 4 | 0 | 3 | 0 | 1 |
| SizedQueue.new ObjectAllocator() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| Queue.new ObjectAllocator() {...} |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |