fix race conditions reading/writing datafile
Description and repro:
If several processes simultaneously try to read and write the datafile, you may wind up with an empty datafile.
I noticed this when opening up many shells at once with screen -c dev,
where dev contains:
source /etc/screenrc
screen -t home
chdir /tmp
screen -t tmp1
screen -t tmp2
screen -t tmp3
screen -t tmp4
screen -t tmp5
In one or more of the screen windows I see
mv: cannot stat `/home/adamm/.j.tmp': No such file or directory
and I notice my datafile has been truncated.
I tried to use this on OSX, but apparently flock isn't available there. Any alternatives?
I don't know, sorry. :(
I tried to use this on OSX, but apparently flock isn't available there. Any alternatives?
Not sure if you really want to use this, but: http://stackoverflow.com/a/13343904/1306877
I'm not really trying to maintain this project. https://github.com/rupa/z/ is actively maintained, has better features, and doesn't suffer from this particular bug (anymore) :)
(Sad that flock isn't available on OSX tho)