I've been playing around with Storable recently and I'm having some trouble figuring out how to do effective file locking. I understand that there are lock_ versions of the store, nstore, and retrieve methods, but those only provide locking while the actualy store or retrieve operation is going on. In order to effectively prevent a race condition, I need to be able to open the file, lock it, and maintain that lock while I do all of the reading/writing I need to do.
According to the docs, the fd_ versions of the commands operate on an already-open file, however I don't understand how I should open the files to begin with. I assume I want some version of an open statement, but I don't know how to format it. Also, I'm not sure that solves my file locking problem.
I feel like I'm trying to do something that this module should allow me to do, but I can't figure out how to do it. I would really appreciate any advice you can give me.