mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-23 16:40:24 +02:00
45708: zsh/system: Enable sub-second timeout in zsystem flock
This commit is contained in:
parent
f179dbf72a
commit
25c9b61a66
6 changed files with 302 additions and 9 deletions
|
@ -166,7 +166,7 @@ to the command, or 2 for an error on the write; no error message is
|
|||
printed in the last case, but the parameter tt(ERRNO) will reflect
|
||||
the error that occurred.
|
||||
)
|
||||
xitem(tt(zsystem flock) [ tt(-t) var(timeout) ] [ tt(-f) var(var) ] [tt(-er)] var(file))
|
||||
xitem(tt(zsystem flock) [ tt(-t) var(timeout) ] [ tt(-i) var(interval) ] [ tt(-f) var(var) ] [tt(-er)] var(file))
|
||||
item(tt(zsystem flock -u) var(fd_expr))(
|
||||
The builtin tt(zsystem)'s subcommand tt(flock) performs advisory file
|
||||
locking (via the manref(fcntl)(2) system call) over the entire contents
|
||||
|
@ -196,9 +196,17 @@ a safety check that the file descriptor is in use for file locking.
|
|||
|
||||
By default the shell waits indefinitely for the lock to succeed.
|
||||
The option tt(-t) var(timeout) specifies a timeout for the lock in
|
||||
seconds; currently this must be an integer. The shell will attempt
|
||||
to lock the file once a second during this period. If the attempt
|
||||
times out, status 2 is returned.
|
||||
seconds; fractional seconds are allowed. During this period, the
|
||||
shell will attempt to lock the file every var(interval) seconds
|
||||
if the tt(-i) var(interval) option is given, otherwise once a second.
|
||||
(This var(interval) is shortened before the last attempt if needed,
|
||||
so that the shell waits only until the var(timeout) and not longer.)
|
||||
If the attempt times out, status 2 is returned.
|
||||
|
||||
(Note: var(timeout) must be less than
|
||||
ifzman(2^30-1)ifnzman(2NOTRANS(@sup{30})-1) seconds (about 34 years),
|
||||
and var(interval) must be less than 0.999 * LONG_MAX microseconds
|
||||
(only about 35 minutes on 32-bit systems).)
|
||||
|
||||
If the option tt(-e) is given, the file descriptor for the lock is
|
||||
preserved when the shell uses tt(exec) to start a new process;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue