FileChannel.TryLock Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
TryLock() |
Attempts to acquire an exclusive lock on this channel's file. |
TryLock(Int64, Int64, Boolean) |
Attempts to acquire a lock on the given region of this channel's file. |
TryLock()
Attempts to acquire an exclusive lock on this channel's file.
[Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")]
public Java.Nio.Channels.FileLock? TryLock ();
[<Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")>]
member this.TryLock : unit -> Java.Nio.Channels.FileLock
Returns
A lock object representing the newly-acquired lock,
or null
if the lock could not be acquired
because another program holds an overlapping lock
- Attributes
Exceptions
if the file channel is closed.
if a lock already exists that overlaps this lock request or another thread is waiting to acquire a lock that will overlap with this request.
if any I/O error occurs.
Remarks
Attempts to acquire an exclusive lock on this channel's file.
An invocation of this method of the form fc.tryLock()
behaves in exactly the same way as the invocation
fc.{@link #tryLock(long,long,boolean) tryLock}(0L, Long.MAX_VALUE, false)
Java documentation for java.nio.channels.FileChannel.tryLock()
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Applies to
TryLock(Int64, Int64, Boolean)
Attempts to acquire a lock on the given region of this channel's file.
[Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")]
public abstract Java.Nio.Channels.FileLock? TryLock (long position, long size, bool shared);
[<Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")>]
abstract member TryLock : int64 * int64 * bool -> Java.Nio.Channels.FileLock
Parameters
- position
- Int64
The position at which the locked region is to start; must be non-negative
- size
- Int64
The size of the locked region; must be non-negative, and the sum
position
+ size
must be non-negative
- shared
- Boolean
true
to request a shared lock,
false
to request an exclusive lock
Returns
A lock object representing the newly-acquired lock,
or null
if the lock could not be acquired
because another program holds an overlapping lock
- Attributes
Exceptions
if any parameters are invalid.
if the file channel is closed.
if a lock is already held that overlaps this lock request or another thread is waiting to acquire a lock that will overlap with this request.
if any I/O error occurs.
Remarks
Attempts to acquire a lock on the given region of this channel's file.
This method does not block. An invocation always returns immediately, either having acquired a lock on the requested region or having failed to do so. If it fails to acquire a lock because an overlapping lock is held by another program then it returns null
. If it fails to acquire a lock for any other reason then an appropriate exception is thrown.
The region specified by the position
and size
parameters need not be contained within, or even overlap, the actual underlying file. Lock regions are fixed in size; if a locked region initially contains the end of the file and the file grows beyond the region then the new portion of the file will not be covered by the lock. If a file is expected to grow in size and a lock on the entire file is required then a region starting at zero, and no smaller than the expected maximum size of the file, should be locked. The zero-argument #tryLock()
method simply locks a region of size Long#MAX_VALUE
.
Some operating systems do not support shared locks, in which case a request for a shared lock is automatically converted into a request for an exclusive lock. Whether the newly-acquired lock is shared or exclusive may be tested by invoking the resulting lock object's FileLock#isShared() isShared
method.
File locks are held on behalf of the entire Java virtual machine. They are not suitable for controlling access to a file by multiple threads within the same virtual machine.
Java documentation for java.nio.channels.FileChannel.tryLock(long, long, boolean)
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.