summaryrefslogtreecommitdiff
path: root/ext/monitor/lib
diff options
context:
space:
mode:
authorKoichi Sasada <[email protected]>2019-10-20 15:45:30 +0900
committerKoichi Sasada <[email protected]>2019-10-20 15:45:30 +0900
commita236eaa762137d7cb32b8311e0ef9a74bbb0f385 ()
treeccf40c23053f1aef9b8445fd8d3e8e4bd816e7a6 /ext/monitor/lib
parenta0a3c701816c2fe4ab6e940c6cf5638756ceb6dc (diff)
Native MonitorMixin::ConditionVariable#wait
MonitorMixin::ConditionVariable#wait can be interrupted just after Monitor#exit_for_cond. So implementation in C.
-rw-r--r--ext/monitor/lib/monitor.rb8
1 files changed, 1 insertions, 7 deletions
@@ -105,13 +105,7 @@ module MonitorMixin
#
def wait(timeout = nil)
@monitor.mon_check_owner
- count = @monitor.__send__(:exit_for_cond)
- begin
- @cond.wait(@monitor.__send__(:mutex_for_cond), timeout)
- return true
- ensure
- @monitor.__send__(:enter_for_cond, count)
- end
end
#