Project

General

Profile

Actions

Feature #13963

closed

[PATCH] file.c: release GVL around lstat(2)

Added by normalperson (Eric Wong) over 6 years ago. Updated over 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:83075]

Description

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]

Tested on both 64-bit and 32-bit x86; will commit in a few
days if no feedback; and there's still a few stat(2) calls
in other places which can be converted to release GVL...


Files

Actions #1

Updated by Anonymous over 6 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r60110.


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]
Actions

Also available in: Atom PDF

Like0
Like0