[#35446] [Ruby 1.9 - Bug #4477][Open] Kernel:exec and backtick (`) don't work for certain system commands — Joachim Wuttke <j.wuttke@...>

10 messages 2011/03/07

[#35476] [Ruby 1.9 - Bug #4489][Open] [PATCH] Encodings with /-(unix|dos|mac)\Z/ — "James M. Lawrence" <quixoticsycophant@...>

20 messages 2011/03/10

[#35552] [Ruby 1.9 - Feature #4523][Open] Kernel#require to return the path of the loaded file — Alex Young <alex@...>

14 messages 2011/03/24

[#35565] [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases — Eric Wong <normalperson@...>

33 messages 2011/03/28

[#35566] [Ruby 1.9 - Feature #4532][Open] [PATCH] add IO#pread and IO#pwrite methods — Eric Wong <normalperson@...>

12 messages 2011/03/28

[#35586] [Ruby 1.9 - Feature #4538][Open] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O — Eric Wong <normalperson@...>

9 messages 2011/03/29

[ruby-core:35424] Re: [Ruby 1.9 - Bug #4463][Open] [PATCH] release GVL for fcntl() for operations that may block

From: KOSAKI Motohiro <kosaki.motohiro@...>
Date: 2011-03-04 16:45:09 UTC
List: ruby-core #35424
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.

In This Thread