36 lines
1.6 KiB
Plaintext
36 lines
1.6 KiB
Plaintext
This is my first alpha release of File::Lock, my version of the code
|
|
greatfully provided by Jarrko. I've mucked about with it quite a bit,
|
|
and there are a few policy decisions you might not agree with:
|
|
|
|
All of the locking functions (see t/* for full details),
|
|
File::lock::(lockf/flock/fcntl) are not exported from File::Lock. They all
|
|
take the same set of arguments: FileHandle, mode, pos, whence, length.
|
|
(Except for lockf, which doesn't take the position arguments.) Mode is two
|
|
characters, and can be "wb" for write-lock/non-blocking, or "rn", for
|
|
read-lock/blocking. Most other characters will work fine. (Look in typemap)
|
|
pos, whence, and length default to "the whole file". Use "u" to unlock a
|
|
handle.
|
|
|
|
The only OO interface is via "new File::Lock()" which uses
|
|
File::Lock::fcntl. If it were working properly, then the lock would be
|
|
unlocked on destruction. But it isn't.
|
|
|
|
File::Lock::lockfile isn't written yet, but will be.
|
|
|
|
You can use a mode of "t" or "i" to get info/test a lock. fcntl in array
|
|
context will return an array consisting of all the usual fcntl data.
|
|
In any other case, a single letter is returned, "u", "w", or "r",
|
|
for the detected locking mode. (or unlocked.)
|
|
|
|
All calls return true if successful. Currently no mucking about with errno
|
|
is done, so it might not be the same for the same condition on all systems.
|
|
|
|
If you need real fcntl() and it's constants, use Fcntl. File::Lock does
|
|
optionally export SEEK_*, and LOCK_EX|UN|SH, though. (I don't remember why,
|
|
though, on the latter.)
|
|
|
|
Any comments, complaints, or bug patches would be greatly appreciated.
|
|
|
|
--
|
|
Kenneth Albanowski (kjahds@kjahds.com, CIS: 70705,126)
|