Check Flock Status on File


#1

I have a daemon that is checking files as they are uploaded by FTP and
processing them accordingly.
I noticed that occasionally the files are truncated, and have put this
down to the file currently being written by the FTP server as im
reading it.
I would like to check the lock status on the file, so I will only
process the file if it is not write-locked.
How can I check the lock status on a given filename?


#2

On Jul 15, 2007, at 1:30 PM, Matt wrote:

I have a daemon that is checking files as they are uploaded by FTP and
processing them accordingly.
I noticed that occasionally the files are truncated, and have put this
down to the file currently being written by the FTP server as im
reading it.
I would like to check the lock status on the file, so I will only
process the file if it is not write-locked.
How can I check the lock status on a given filename?

fcntl/posix (see posixlock gem) locks export that information but
flock, afaik, does not. this seems workable though

http://drawohara.tumblr.com/post/5891548

-a


#3

On Jul 16, 6:38 am, “ara.t.howard” removed_email_address@domain.invalid wrote:

fcntl/posix (see posixlock gem) locks export that information but
flock, afaik, does not. this seems workable though

http://drawohara.tumblr.com/post/5891548

-a

we can deny everything, except that we have the possibility of being
better. simply reflect on that.
h.h. the 14th dalai lama

So the code above modifies the File class so that an instance will
include a flocked? method, right?

Is it a good assumption that something like this would eventually make
it into File?

Mike B.


#4

On Jul 16, 2007, at 1:25 PM, barjunk wrote:

So the code above modifies the File class so that an instance will
include a flocked? method, right?

indeed.

Is it a good assumption that something like this would eventually make
it into File?

hmmm. i wouldn’t hold my breath - but you could put in an rcr :wink:

a @ http://drawohara.com/


#5

On Jul 16, 2007, at 3:39 PM, barjunk wrote:

One last thing. So I assume then, that multiple process as well as
multiple threads will maintain the lock properly.

no - just processes. it’s easy to extend ruby’s flock to support
processes though: just keep state in thread local vars - i think i
actually have code lying around that does just that… (goes
hunting…)

a @ http://drawohara.com/


#6

On Jul 16, 1:17 pm, “ara.t.howard” removed_email_address@domain.invalid wrote:

it into File?

hmmm. i wouldn’t hold my breath - but you could put in an rcr :wink:

OK. I’ll keep it lying about then, cause it seems very usefull.

One last thing. So I assume then, that multiple process as well as
multiple threads will maintain the lock properly.

Mike B.


#7

On Jul 16, 2007, at 9:23 AM, Matt Williams wrote:

Matt

cool. i had pasted the wrong code btw - the right stuff is up there
now…

cheers.

http://drawohara.tumblr.com/post/5891548

a @ http://drawohara.com/