From: KOSAKI Motohiro <kosaki.motohiro@...>
Date: 2011-03-05T01:45:09+09:00
Subject: [ruby-core:35424] Re: [Ruby 1.9 - Bug #4463][Open] [PATCH] release GVL for fcntl() for operations that may block

Hi

2011/3/3 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
>> Issue #4463 has been reported by Eric Wong.
>>
>> ----------------------------------------
>> Bug #4463: [PATCH] release GVL for fcntl() for operations that may block
>> http://redmine.ruby-lang.org/issues/4463
>>
>> Author: Eric Wong
>> Status: Open
>> Priority: Normal
>> Assignee:
>> Category: core
>> Target version: 1.9.x
>> ruby -v: ruby 1.9.3dev (2011-03-03 trunk 31011) [x86_64-linux]
>>
>>
>> Users of F_SETLKW may block the entire VM via IO#fcntl,
>> release the GVL so other operations may continue.
>
> Yeah.
> It looks reasonable request. :)

Hi

I've commited slightly modified version today (r31025).
The difference is,

1) All IO.fcntl() and IO.iocntl() relese GVL instead only SETLCKW. because,
    A) if a user are using network filesystem, almost all fcntl need network
        communication. iow, they can be blocked.
    B) We are sure ioctl() has similar issue. But, we don't have any knowledge
        which ioctl can be blocked. It is strongly dependend a
platform and a device.
2) Added small test. It is based on your Fcntl::Flock patch.

Thanks.