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