summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2020-12-24 13:43:22 +0900
committerYusuke Endoh <mame@ruby-lang.org>2020-12-24 14:34:40 +0900
commit8e1c0b2f93abe23f42bd7eba0a3f0d3f3669e486 (patch)
tree03944274f80d3630a20dd8e3c98dc7d780c8084d /dir.c
parente43b5aa52dcd1eaded1141ab85a30bc8c7c4a6e4 (diff)
dir.c: chdir conflict should raise only when called in different thread
... and keep it as a warning (like 2.7) when it is called in the same thread. [Bug #15661]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3990
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/dir.c b/dir.c
index 49e6818d25..bedbdd9f83 100644
--- a/dir.c
+++ b/dir.c
@@ -1064,8 +1064,10 @@ dir_s_chdir(int argc, VALUE *argv, VALUE obj)
}
if (chdir_blocking > 0) {
- if (!rb_block_given_p() || rb_thread_current() != chdir_thread)
+ if (rb_thread_current() != chdir_thread)
rb_raise(rb_eRuntimeError, "conflicting chdir during another chdir block");
+ if (!rb_block_given_p())
+ rb_warn("conflicting chdir during another chdir block");
}
if (rb_block_given_p()) {