in reply to Re^2: Lightweight Solution To "Only 1 Process Running" On AIX (fcntl)
in thread Lightweight Solution To "Only 1 Process Running" On AIX

You can do fcntl-based locking in pure Perl. Now that you mention that File::FcntlLock has an XS component, I bet it only does that to avoid what might seem somewhat hackish use of pack. I suspect google can pretty quickly find you examples of how to do this is plain Perl (or just follow the documentation -- it isn't rocket surgery).

- tye        

  • Comment on Re^3: Lightweight Solution To "Only 1 Process Running" On AIX (fcntl)

Replies are listed 'Best First'.
Re^4: Lightweight Solution To "Only 1 Process Running" On AIX (fcntl)
by Anonymous Monk on May 16, 2014 at 10:31 UTC

    File::FcntlLock is an XS module precisely for that reason. Using pack isn't that easy as you make it look: you need to know the exact layout of the flock structure used on the system, and this differs considerably between system (different numbers of members, different ordering of the members, different types of members, structure padding). Thus a program creating a flock structure using pack (or diassembling it with unpack) is, unfortunately, not portable.

      A title that ends in "On AIX" doesn't really sound like a problem where portability is the number one concern.

      Trying to use pack to build the required data structure in a portable way is certainly harder than I would work. Building that data structure for your version of AIX is indeed, as I said, not rocket surgery.

      - tye