diff options
author | Benoit Daloze <[email protected]> | 2020-09-21 16:22:04 +0200 |
---|---|---|
committer | Benoit Daloze <[email protected]> | 2020-09-21 16:22:04 +0200 |
commit | 82998918efa3a637c80e135198b573cfcb31acd9 (patch) | |
tree | 35d37cb05261bcac266d192d371aa03c33d7f814 /thread.c | |
parent | 2b73e6ba712d35e6ec767bf722edf542cc2e47c6 (diff) |
Make Thread#join always convert its argument, as before 70f08f1eed
Diffstat (limited to 'thread.c')
-rw-r--r-- | thread.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -1313,6 +1313,17 @@ thread_join_m(int argc, VALUE *argv, VALUE self) timeout = argv[0]; } + // Convert the timeout eagerly, so it's always converted and deterministic + if (timeout == Qnil) { + /* unlimited */ + } + else if (FIXNUM_P(timeout)) { + /* handled directly in thread_join_sleep() */ + } + else { + timeout = rb_to_float(timeout); + } + return thread_join(rb_thread_ptr(self), timeout); } |