From 070557afc4ca83876b951fe090806b59e3867ae5 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 6 Feb 2020 09:14:40 +0900 Subject: Distinguish signal and timeout [Bug #16608] --- ext/monitor/monitor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ext') diff --git a/ext/monitor/monitor.c b/ext/monitor/monitor.c index 00d663195f..10209cf2aa 100644 --- a/ext/monitor/monitor.c +++ b/ext/monitor/monitor.c @@ -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 -- cgit v1.2.3