tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: flock(2): locking against itself?
Date: Sat, 18 Mar 2023 11:32:37 -0400 (EDT)
From: Mouse <mouse%Rodents-Montreal.ORG@localhost>
Message-ID: <202303181532.LAA29028%Stone.Rodents-Montreal.ORG@localhost>
| On examination, the manpages available to me (including the one at
| http://man.netbsd.org/flock.2) turn out to say nothing to clarify this.
The man page (including the one on the web that you referenced) starts out:
flock() applies or removes an advisory lock on the file associated with
the file descriptor fd.
and then lower down, under NOTES:
Locks are on files, not file descriptors. That is, file descriptors
duplicated through dup(2) or fork(2) do not result in multiple instances
of a lock, but rather multiple references to a single lock. If a process
holding a lock on a file forks and the child explicitly unlocks the file,
the parent will lose its lock.
Applying flock() to an already locked (of this kernel file*) file
is an attempt to upgrade, or downgrade (including unlock) the file,
and would only block on an upgrade attempt if some other file*
referencing the same file (ie: the product of a distinct open() etc)
is holding a lock that blocks the upgrade.
| Is this expected behaviour, or is it a bug?
Expected
Always been this way.
kre
Home |
Main Index |
Thread Index |
Old Index