[#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:35428] 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-05 08:36:43 UTC
List: ruby-core #35428
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.
>
> Agreed on both points.

thank you.

>
>> 2) Added small test. It is based on your Fcntl::Flock patch.
>
> Any chance of that patch making it into trunk? 'd be happy to make
> any changes/improvements necessary (+docs, too). hanks again.

Umm..
I don't like its interface so much. your flock object don't mange any lock
state. it's merely wrapper of argument of fcntl. your interface mean we need
two line every lock operation. eg.

      lock = Fcntl::Flock.new Fcntl::F_WRLCK
      f.fcntl Fcntl::F_SETLKW, lock

but I *personally* prefer array or hash capsulation. e.g

   f.fcntl Fcntl:F_SETLKW, [Fcntl:F_WRLK, SEEK_SET, 0, 0]

   or

   f.fcntl Fcntl:F_SETLKW, { :l_type => Fcntl:F_WRLK }

But, of cource, I'm not against if matz ack yours. So I recommend you
describe the detailed interface to matz instead only just attached a patch.
It's best practice to persuade _very_ busy person. :)

In This Thread