FileLock
Object Hierarchy:
Description:
public class FileLock : Object
File-based inter-process lock.
FileLock uses exclusive lock-file creation to coordinate critical sections across multiple processes.
Example:
var lock = new FileLock (new Path ("/tmp/myjob.lock"));
var acquired = lock.acquireTimeout (Duration.ofSeconds (5));
if (acquired.isOk () && acquired.unwrap ()) {
try {
run_critical_job ();
} finally {
lock.release ();
}
}
Content:
Creation methods:
Methods:
- public bool acquire ()
Acquires lock, blocking until success.
- public Result<bool,Error> acquireTimeout (Duration timeout)
Attempts to acquire lock within timeout.
- public bool isHeld ()
Returns whether this instance currently holds the lock.
- public int? ownerPid ()
Returns owner process ID from lock-file content.
- public bool release ()
Releases lock.
- public bool tryAcquire ()
Attempts lock acquisition without blocking.
- public bool withLock (owned WithFileLockFunc fn)
Executes callback while lock is held.
Inherited Members:
All known members inherited from class GLib.Object
- @get
- @new
- @ref
- @set
- add_toggle_ref
- add_weak_pointer
- bind_property
- connect
- constructed
- disconnect
- dispose
- dup_data
- dup_qdata
- force_floating
- freeze_notify
- get_class
- get_data
- get_property
- get_qdata
- get_type
- getv
- interface_find_property
- interface_install_property
- interface_list_properties
- is_floating
- new_valist
- new_with_properties
- newv
- notify
- notify_property
- ref_count
- ref_sink
- remove_toggle_ref
- remove_weak_pointer
- replace_data
- replace_qdata
- set_data
- set_data_full
- set_property
- set_qdata
- set_qdata_full
- set_valist
- setv
- steal_data
- steal_qdata
- thaw_notify
- unref
- watch_closure
- weak_ref
- weak_unref