[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

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=60110

  Log:
    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:
    trunk/file.c


More information about the ruby-cvs mailing list