[ruby-cvs:67291] normal:r60110 (trunk): file.c: release GVL around lstat(2)

normal at ruby-lang.org normal at ruby-lang.org
Wed Oct 4 08:47:53 JST 2017

normal	2017-10-04 08:47:53 +0900 (Wed, 04 Oct 2017)

  New Revision: 60110


    file.c: release GVL around lstat(2)
    Like stat(2), lstat(2) can be expensive on slow filesystems and
    should not block other threads.  There should be a minor, but
    not significant slowdowns in single-threaded performance similar
    to benchmarks around the more-portable stat(2):
    [ruby-core:83012] [Bug #13941]
    * file.c (no_gvl_lstat): new function for rb_thread_call_without_gvl
      (lstat_without_gvl): new wrapper to replace lstat(2) calls
      (rb_file_s_lstat): s/lstat/&_without_gvl/
      (rb_file_lstat): ditto
      (rb_file_symlink_p): ditto
      (rb_file_s_ftype): ditto
      (rb_file_expand_path_internal): ditto
      (realpath_rec): ditto
      [ruby-core:83075] [Feature #13963]

  Modified files:

More information about the ruby-cvs mailing list