diff options
Diffstat (limited to 'ext/monitor/monitor.c')
-rw-r--r-- | ext/monitor/monitor.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/monitor/monitor.c b/ext/monitor/monitor.c index 00d663195f..86613f6ade 100644 --- a/ext/monitor/monitor.c +++ b/ext/monitor/monitor.c @@ -102,7 +102,7 @@ monitor_exit(VALUE monitor) struct rb_monitor *mc = monitor_ptr(monitor); - if (mc->count <= 0) rb_bug("monitor_exit: count:%d\n", (int)mc->count); + if (mc->count <= 0) rb_bug("monitor_exit: count:%d", (int)mc->count); mc->count--; if (mc->count == 0) { @@ -149,8 +149,8 @@ monitor_wait_for_cond_body(VALUE v) struct wait_for_cond_data *data = (struct wait_for_cond_data *)v; struct rb_monitor *mc = monitor_ptr(data->monitor); // cond.wait(monitor.mutex, timeout) - rb_funcall(data->cond, rb_intern("wait"), 2, mc->mutex, data->timeout); - return Qtrue; + VALUE signaled = rb_funcall(data->cond, rb_intern("wait"), 2, mc->mutex, data->timeout); + return RTEST(signaled) ? Qtrue : Qfalse; } static VALUE |