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

tye,
I wrote and ran code myself at your and JavaFan's prodding - shown here. I get the same error. The perl is 5.8.2 (I can provide the -V if desired but I doubt it). I will look into File::FcntLock but I was hoping to avoid having to compile anything since that is a long process in this environment.

Cheers - L~R

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

Replies are listed 'Best First'.
Re^3: Lightweight Solution To "Only 1 Process Running" On AIX (fcntl)
by tye (Sage) on May 01, 2009 at 15:33 UTC

    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        

      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