File: locks.h

package info (click to toggle)
trinity 1.9%2Bgit20230109.87f1530-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,116 kB
  • sloc: ansic: 33,463; sh: 536; makefile: 163
file content (23 lines) | stat: -rw-r--r-- 361 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include <sys/types.h>
#include "types.h"

struct lock_struct {
	volatile unsigned char lock;
	pid_t owner;
};

typedef struct lock_struct lock_t;

#define UNLOCKED 0
#define LOCKING 1
#define LOCKED 2

bool trylock(lock_t *_lock);
void lock(lock_t *_lock);
void unlock(lock_t *_lock);

bool check_all_locks(void);

void bust_lock(lock_t *_lock);