BFLibC 0.1
C Library
|
#include "lock.h"
#include <stdlib.h>
#include <pthread.h>
#include "free.h"
#include "bftime.h"
#include <errno.h>
Data Structures | |
struct | _BFLock |
Macros | |
#define | FLAGS_GET(flags, bit) (flags & (1 << bit)) |
#define | FLAGS_SET_ON(flags, bit) flags |= (1 << bit) |
#define | FLAGS_SET_OFF(flags, bit) flags &= ~(1 << bit) |
#define | IS_WAITING_GET(flags) FLAGS_GET(flags, 0) |
#define | IS_WAITING_SET_ON(flags) FLAGS_SET_ON(flags, 0) |
#define | IS_WAITING_SET_OFF(flags) FLAGS_SET_OFF(flags, 0) |
Functions | |
bool | BFLockIsValid (BFLock *_lock) |
int | BFLockCreate (BFLock *lock) |
int | BFLockDestroy (BFLock *lock) |
int | BFLockWait (BFLock *lock) |
int | BFLockTimedWait (BFLock *lock, BFTime t) |
int | BFLockRelease (BFLock *lock) |
int | BFLockLock (BFLock *lock) |
int | BFLockUnlock (BFLock *lock) |
bool | BFLockIsWaiting (BFLock *lock) |
#define FLAGS_GET | ( | flags, | |
bit ) (flags & (1 << bit)) |
#define FLAGS_SET_OFF | ( | flags, | |
bit ) flags &= ~(1 << bit) |
#define FLAGS_SET_ON | ( | flags, | |
bit ) flags |= (1 << bit) |
#define IS_WAITING_GET | ( | flags | ) | FLAGS_GET(flags, 0) |
#define IS_WAITING_SET_OFF | ( | flags | ) | FLAGS_SET_OFF(flags, 0) |
#define IS_WAITING_SET_ON | ( | flags | ) | FLAGS_SET_ON(flags, 0) |
int BFLockCreate | ( | BFLock * | lock | ) |
Caller owns
int BFLockDestroy | ( | BFLock * | lock | ) |
Releases memory
bool BFLockIsValid | ( | BFLock * | _lock | ) |
Validates BFLock object
bool BFLockIsWaiting | ( | BFLock * | l | ) |
true if lock is being blocked by BFLockWait
int BFLockLock | ( | BFLock * | lock | ) |
Activates a mutex lock
int BFLockRelease | ( | BFLock * | lock | ) |
Releases BFLock waiting on BFLockWait
Waits for a specific amount of time before continuing
if elapsed time reaches t, kBFLockTimedWaitCodeTimedOut returns
t : seconds with nanosecond resolution. e.g. 1.0
is one second
int BFLockUnlock | ( | BFLock * | lock | ) |
Unlocks a mutex lock
int BFLockWait | ( | BFLock * | lock | ) |
Waits until BFLockRelease is called on object