About critical section

Greetings all,

I post a similar message to rails mailing list since I encountered
this problem during development of a rails application, but now the
problem is more ruby specific, so I decided to post here.

Basically, I have to implement a critical section like this to avoid
race condition:

/* begin critical section /
loop do
filename = generate_filename
break unless File.exist?(filename)
end
File.new(filename).flock
/
end */
write_to_filename

Somebody said I could open a file with exclusive lock, but I do not
know an atomic way. Could anyone help? Thanks alot!

Difei

Difei Z. wrote:

Somebody said I could open a file with exclusive lock, but I do not
know an atomic way. Could anyone help? Thanks alot!

man 2 open, there is a O_EXCL

Difei Z. wrote:

Basically, I have to implement a critical section like this to avoid
race condition:

I think you can use Mutex. First

require ‘thread’
$mutex=Mutex::new

and then

$mutex.synchronize
{

your critical section

}

TPR.