mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
The default values for repeated attempts at acquiring a file lock created by util_lockfile are on the order of seconds. Let's leave this the default, but allow for a caller to specify smaller values by adding cw (custom_wait) functions and by switching from using sleep to usleep. Reviewed-by: Anthony Krowiak <akrowiak@linux.ibm.com> Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
33 lines
1.2 KiB
C
33 lines
1.2 KiB
C
/**
|
|
* @defgroup util_lockfile_h util_lockfile: File locking utility
|
|
* @{
|
|
* @brief Create file-based locks
|
|
*
|
|
* Copyright IBM Corp. 2022
|
|
*
|
|
* s390-tools is free software; you can redistribute it and/or modify
|
|
* it under the terms of the MIT license. See LICENSE for details.
|
|
*/
|
|
#ifndef LIB_UTIL_LOCKFILE_H
|
|
#define LIB_UTIL_LOCKFILE_H
|
|
|
|
#define UTIL_LOCKFILE_OK 0 /* Lock acquired/released successfully */
|
|
#define UTIL_LOCKFILE_LOCK_FAIL 1 /* Lock already held, ran out of retries */
|
|
#define UTIL_LOCKFILE_RELEASE_NONE 2 /* Lock not held */
|
|
#define UTIL_LOCKFILE_RELEASE_FAIL 3 /* Lock not held by specified pid */
|
|
#define UTIL_LOCKFILE_ERR 4 /* Other, unexpected error conditions */
|
|
|
|
int util_lockfile_lock(char *lockfile, int retries);
|
|
int util_lockfile_lock_cw(char *lockfile, int retries, unsigned int waitinc,
|
|
unsigned int maxwait);
|
|
int util_lockfile_parent_lock(char *lockfile, int retries);
|
|
int util_lockfile_parent_lock_cw(char *lockfile, int retries,
|
|
unsigned int waitinc, unsigned int maxwait);
|
|
|
|
int util_lockfile_release(char *lockfile);
|
|
int util_lockfile_parent_release(char *lockfile);
|
|
|
|
int util_lockfile_peek_owner(char *lockfile, int *pid);
|
|
|
|
#endif /** LIB_UTIL_LOCKFILE_H @} */
|