Nico Grubert <[EMAIL PROTECTED]> wrote:
>  There is no cronjob anymore now. I just need to check if there is a lock 
>  file. How would you modify my short program to avoid the situation "Ie 
>  someone can get in there after you read the directory but before
>  you create the file."?

You can't do it with files.

You can do it with directories though...

Both processes need to be using the same lock, so something like this
(all untested ;-)

import os
import time
WINDOWS_SHARE = 'C:\\Temp'
lock_file = os.path.join(WINDOWS_SHARE, "transfer.lock")

gained_lock = False
while not gained_lock:
    try:
        os.mkdir(lock_file)
        gained_lock = True
    except OSError:
        print "Busy, please wait..."
        time.sleep(10)

f = open(WINDOWS_SHARE + '/myfile', 'w')
f.write("test 123")
f.close()

os.rmdir(lock_file)

print "Done!"

You need to do the same thing to the program which currently creates
transfer.lock - so it waits if the transfer.lock is in existence too.

-- 
Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to