[#7055] More on VC++ 2005 — Austin Ziegler <halostatue@...>

Okay. I've got Ruby compiling. I'm attempting to get everything in

17 messages 2006/01/05
[#7058] Re: More on VC++ 2005 — nobuyoshi nakada <nobuyoshi.nakada@...> 2006/01/06

Hi,

[#7084] mathn: ugly warnings — hadmut@... (Hadmut Danisch)

Hi,

22 messages 2006/01/10
[#7097] Re: mathn: ugly warnings — Daniel Berger <Daniel.Berger@...> 2006/01/10

Hadmut Danisch wrote:

[#7098] Design contracts and refactoring (was Re: mathn: ugly warnings) — mathew <meta@...> 2006/01/10

Daniel Berger wrote:

[#7118] Re: Design contracts and refactoring (was Re: mathn: ugly warnings) — mathew <meta@...> 2006/01/12

*Dean Wampler *<deanwampler gmail.com> writes:

[#7226] Fwd: Re: Question about massive API changes — "Sean E. Russell" <ser@...>

Hello,

23 messages 2006/01/28
[#7228] Re: Question about massive API changes — Caleb Tennis <caleb@...> 2006/01/28

>

Re: Calling flock with block?

From: ara.t.howard@...
Date: 2006-01-12 00:29:55 UTC
List: ruby-core #7113
On Thu, 12 Jan 2006, Joel VanderWerf wrote:

> It seems likely to me that a lot of people have implemented exactly that
> same piece of code, probably more than once. The #flock method doesn't
> have a block_given case already, and it's pretty unambiguous how it
> should handle that case...

i sure have.  on the otherhand it is generally redundant since closing the
file is guaranteed to release the lock...  so unless you need

   open(path,"r+") do |f|
     f.flock(File::LOCK_EX) do
       ...
     end

     f.something
   end

it's not needed.  also, since getting a lock releases ALL other locks on the
file this needs to throw an error

   open(path,"r+") do |f|
     f.flock(File::LOCK_EX) do
       f.flock(File::LOCK_SH) do
         # we don't have the lock here, error should be raised!
       end
     end
   end

child processes also affect lock so this should also throw

   open(path,"r+") do |f|
     f.flock(File::LOCK_EX) do
       fork do
         f.flock(File::LOCK_EX) do
           ...
         end
       end
       # we don't have the lock here, error should be raised!
     end
   end

in the end i think it may be wise no allow applications to simply use ensure
where needed - a 'correct' impl is rather tricky.

regards.

-a
-- 
strong and healthy, who thinks of sickness until it strikes like lightning?
preoccupied with the world, who thinks of death, until it arrives like
thunder?  -- milarepa


In This Thread