Re: Non-NIO dynamic shared memory mapping
Todd wrote:
On Jul 24, 6:31 am, Tom Anderson <t...@urchin.earth.li> wrote:
Hang on, do you mean that FileLock doesn't guarantee a mandatory rather
than advisory lock, or something else?
Tom, from what I have read, FileLock is advisory, not mandatory, and
even that is dependent upon the operating system. This means that one
can't rely on the locking to satisfy synchronization issues.
The Java docs are very clear:
<quote>
This file-locking API is intended to map directly to the native locking
facility of the underlying operating system. Thus the locks held on a
file should be visible to all programs that have access to the file,
regardless of the language in which those programs are written.
Whether or not a lock actually prevents another program from accessing
the content of the locked region is system-dependent and therefore
unspecified. The native file-locking facilities of some systems are
merely advisory, meaning that programs must cooperatively observe a
known locking protocol in order to guarantee data integrity. On other
systems native file locks are mandatory, meaning that if one program
locks a region of a file then other programs are actually prevented from
accessing that region in a way that would violate the lock. On yet other
systems, whether native file locks are advisory or mandatory is
configurable on a per-file basis. To ensure consistent and correct
behavior across platforms, it is strongly recommended that the locks
provided by this API be used as if they were advisory locks.
</quote>
Arne