As i don't want the drive to be shared, instead of semaphore can i use mutex? Also, how do we create a mutex on a remote machine?
| [reply] |
A Semaphore with a maximum count of 1 is functionally the same as a mutex (sometimes called a binary semaphore). Of course you can use a mutex instead, is this on Windows?
Nowhere in your post did you mention that a remote machine is involved. In that case a Mutex or Semaphore is not appropriate (I'm not so sure that file locking would be either). Other options include named pipes, but this then depends on the operating system.
| [reply] |
I am sorry that i didn't post the right information at the beginning itself.
yes, it is on windows machine & the drives are located on a remote machine.
| [reply] |
Since this is a Windows machine, one facility that might or might not have applicability here is the RunOnce registry key. This allows you to say, "hey if the system crashes and reboots", run program X for this boot instance only (after that the OS deletes this entry). Program X might say, remove lock files. Some installation programs will register a program like this before starting some complex operation and then remove the RunOnce entry when the operation completes successfully. If Program X ever runs, it knows that "complex operation" didn't complete successfully and it can presumably go about some cleanup job to get things in a consistent state. Of course there are lot's of ways that lock files can be left dangling around out there short of a full system crash! But I thought this feature was worth a mention. | [reply] |