mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-12-08 00:00:12 +03:00
Some checks are pending
build / bcachefs-tools-deb (ubuntu-22.04) (push) Waiting to run
build / bcachefs-tools-deb (ubuntu-24.04) (push) Waiting to run
build / bcachefs-tools-rpm (push) Waiting to run
build / bcachefs-tools-msrv (push) Waiting to run
Nix Flake actions / nix-matrix (push) Waiting to run
Nix Flake actions / ${{ matrix.name }} (${{ matrix.system }}) (push) Blocked by required conditions
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
21 lines
565 B
C
21 lines
565 B
C
#ifndef __TOOLS_LINUX_MUTEX_H
|
|
#define __TOOLS_LINUX_MUTEX_H
|
|
|
|
#include <pthread.h>
|
|
|
|
struct mutex {
|
|
pthread_mutex_t lock;
|
|
};
|
|
|
|
#define DEFINE_MUTEX(mutexname) \
|
|
struct mutex mutexname = { .lock = PTHREAD_MUTEX_INITIALIZER }
|
|
|
|
#define mutex_init(l) pthread_mutex_init(&(l)->lock, NULL)
|
|
#define mutex_lock(l) pthread_mutex_lock(&(l)->lock)
|
|
#define mutex_trylock(l) (!pthread_mutex_trylock(&(l)->lock))
|
|
#define mutex_unlock(l) pthread_mutex_unlock(&(l)->lock)
|
|
|
|
DEFINE_GUARD(mutex, struct mutex *, mutex_lock(_T), mutex_unlock(_T))
|
|
|
|
#endif /* __TOOLS_LINUX_MUTEX_H */
|