diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-11-18 02:01:49 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-11-18 02:01:49 +0000 |
commit | 8840b033fbf5f33923adbb7a1c38177f56bbe0b2 (patch) | |
tree | d274f659a07be57ad6af316e1b00020a3dcc9f1d /BSDL | |
parent | 089eb0c5cedaa405efe024a4cf5e58faf2bc4a78 (diff) | |
download | ruby-8840b033fbf5f33923adbb7a1c38177f56bbe0b2.tar.gz |
dir.c: openat calls release GVL, too
openat(2) also performs a path lookup, so it is also subject
to pathological slowdowns like opendir(3) and open(2) syscalls.
* dir.c (struct opendir_at_arg): new struct for callback
(with_gvl_gc_for_fd): new callback for rb_thread_call_with_gvl
(gc_for_fd_with_gvl): moved up
(nogvl_opendir_at): extracted from do_opendir
(opendir_at): new wrapper to release GVL for opendir_at
(do_opendir): use new wrappers to release GVL
(nogvl_dir_empty_p): adjust for gc_for_fd_with_gvl
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'BSDL')
0 files changed, 0 insertions, 0 deletions