Loading ...
Sorry, an error occurred while loading the content.

25014Re: [nslu2-linux] Re: Lockfiles

Expand Messages
  • David Given
    Mar 3, 2012
    • 0 Attachment
      On 02/03/12 22:11, rolandkbs wrote:
      > Creating a file and checking for its presence is not an atomic operation.

      Actually...

      There's a long and honoured art of using the filesystem for locking,
      using mkdir(2) and rmdir(2), like this:

      while (mkdir("/tmp/lockfile", 0700) == -1) // try to take lock
      {
      // if mkdir failed, the lock is already taken, so wait and try
      // again
      sleep(1);
      }

      // lock now taken
      ... do something ...
      rmdir("/tmp/lockfile"); // release lock

      You can even do this from shell scripts; see lockfile(1).

      Of course, named semaphores (see sem_open(3) for details) are better in
      every possible way, but there are still cases (e.g. mailboxes, or doing
      things from scripts) where the above approach is suitable.

      --
      ┌─── dg@cowlark.com ───── http://www.cowlark.com ─────

      │ "Never attribute to malice what can be adequately explained by
      │ stupidity." --- Nick Diamos (Hanlon's Razor)
    • Show all 4 messages in this topic