diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-09 03:46:39 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-09 03:46:39 +0000 |
commit | dceb897e5ab55468767c308af7680108cb0e482c (patch) | |
tree | 76c89a5f3886e28f68a85af7f239c1d46230380d /symbol.h | |
parent | 933fabd1b9a48591dc589527c5f99b64598dd2e9 (diff) | |
download | ruby-dceb897e5ab55468767c308af7680108cb0e482c.tar.gz |
Dir#chdir keeps GVL if passed block
On further examination, Dir.chdir with a block from multiple
threads is thread-unsafe given our use of the chdir_blocking and
chdir_thread global variables.
This bug was only introduced in r60583 so not part of any stable
release.
Dir.chdir without a block can still make senses in a MT context
as only one thread could be cwd-sensitive and other threads do
not care which directory they're in.
* dir.c (dir_chdir): keep GVL here
(dir_s_chdir): release GVL if no block given
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'symbol.h')
0 files changed, 0 insertions, 0 deletions