[#16113] Strange idea... exporting from a scope — "Hal E. Fulton" <hal9000@...>

Hello...

33 messages 2001/06/01

[#16364] Re: Garbage Collection? — Michael Davis <mdavis@...>

Windows 2000 and linux (RedHat 6.2). I have run these tests on both OSs.

12 messages 2001/06/09

[#16400] Symbolic Computation III — Mathieu Bouchard <matju@...>

14 messages 2001/06/11

[#16502] Playing with Ruby Syntax (was: Initial thoughts about Ruby From a Smalltalk Programmer) — jweirich@...

Michael> Hi Everyone, I have to say I'm utterly fascinated by Ruby

9 messages 2001/06/15

[#16661] Problem running irb with Ruby 1.6.4 under FreeBSD 4.0 — Bob Alexander <balexander@...>

I've installed Ruby 1.6.4 on a FreeBSD 4.0 machine, and get the

11 messages 2001/06/20

[#16686] opening db files made by apache dbmmanage — Fritz Heinrichmeyer <fritz.heinrichmeyer@...>

14 messages 2001/06/21

[#16801] rb_define_class() vs Class.new() — Kero van Gelder <kero@...4050.upc-d.chello.nl>

Hi,

18 messages 2001/06/23
[#16802] Re: rb_define_class() vs Class.new() — ts <decoux@...> 2001/06/23

>>>>> "K" == Kero van Gelder <kero@d4050.upc-d.chello.nl> writes:

[#16841] RE: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...>

Next week I'll try to rebuild Ruby with Unicode strings. But it would be

15 messages 2001/06/25
[#16842] Re: national characters is strings — matz@... (Yukihiro Matsumoto) 2001/06/25

Hi,

[#16843] Re: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/25

That's good enough. But I'm afraid this could ( not would ) cause string

[#16868] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

14 messages 2001/06/25
[#16873] RE: Something strange with Ruby's inheritance mechanism — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/26

[#16879] Re: Something strange with Ruby's inheritance mechanism — Mathieu Bouchard <matju@...> 2001/06/26

On Tue, 26 Jun 2001, Aleksei Guzev wrote:

[#16869] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

12 messages 2001/06/25

[#16881] — "Aleksei Guzev" <aleksei.guzev@...>

32 messages 2001/06/26
[#16916] Re: Method overloading (option) Was: Re: — "Wayne Blair" <wayne.blair@...> 2001/06/26

[#16920] Re: Method overloading (option) Was: Re: — matz@... (Yukihiro Matsumoto) 2001/06/26

Hi,

[#16888] finalizers, destructors and whatnot — "David Leal" <david@...>

Hi all,

16 messages 2001/06/26

[#17037] keeping an Exception object alive — David Alan Black <dblack@...>

Hello --

19 messages 2001/06/28
[#17055] Re: keeping an Exception object alive — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17066] RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17076] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17079] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17138] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/07/02

Hi,

[#17141] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/07/02

Hello --

[#17142] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — ts <decoux@...> 2001/07/02

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

[ruby-talk:16721] RE: File.flock blocks forever

From: "Benjamin J. Tilly" <ben_tilly@...>
Date: 2001-06-21 19:35:00 UTC
List: ruby-talk #16721
This is not an answer to your question, but it is a note
about flock.

It is important to flush all buffers before you unlock a
flock, and in the common case where you are going to close
it right after, it is both safest and simplest to just
close the file.  On close you are guaranteed to flush the
buffer, and the OS guarantees that you drop the lock.

Less code and does what you want..good argument in my books.

But since so many people get this wrong, Perl guarantees a
flush on a filehandle before you unlock.  If Ruby doesn't do
this, it would be a good idea.

Incidentally if you will be editing a file you either have
to open the file in read-write mode, or you need to flock a
sentinel file instead.  For BerkeleyDB you need to either
use its locking routines or flock a sentinel file.  There are
serious race conditions with the naive "lock each operation
with a file I am editing" or with flocking the filehandle to
your dbm.

Cheers,
Ben

>===== Original Message From Michael Witrant <mike@lepton.fr> =====
>Hello,
>
>I try to use File.flock to lock a file in a cgi script, but I can't get
>it to work in my test script.
>It creates a file and write "foo". A thread that will write "bar" in 0.1
>secondes is started, and an infinite loop reads the file and print the
>result.
>The script displays some "foo" and waits, probably for the file to be
>unlocked. No "bar". I expected some "foo", then many "bar".
>
>Here is the script:
>
>filename = "/tmp/flock-test"
>
>f = open(filename, "w")
>f.puts "foo"
>f.close
>
>Thread.new {
>  sleep .1
>  f = open(filename, "w")
>  f.flock(File::LOCK_EX)
>  f.puts "bar"
>  f.flock(File::LOCK_UN)
>  f.close
>}
>
>loop do
>  f = open(filename)
>  f.flock(File::LOCK_EX)
>  puts f.gets
>  f.flock(File::LOCK_UN)
>  f.close
>end
>
>With the help of some puts, it seems to be blocking on f.gets in the
>main thread and f.flock in the writing thread.
>If I add "sleep .0001" in the main loop, it works.
>
>Where am I wrong?
>
>I tried to search "flock" on ruby-talk.com, but I got an Internal Server
>Error.
>
>
>Mike.
>midulo.

In This Thread

Prev Next