As a side note on implementation, is there a particular reason you chose 
to use filelocking when something like drb would allow you to do thread 
atomic gets across a network without necessarily having shared disk 
space?  Let alone a shared tuplespace which does even more fun things 
for you?

Charlie