BFLibC 0.1
C Library
Loading...
Searching...
No Matches
lock.c File Reference
#include "lock.h"
#include <stdlib.h>
#include <pthread.h>
#include "free.h"
#include "bftime.h"
#include <errno.h>
Include dependency graph for lock.c:

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)
 

Macro Definition Documentation

◆ FLAGS_GET

#define FLAGS_GET ( flags,
bit )   (flags & (1 << bit))

◆ FLAGS_SET_OFF

#define FLAGS_SET_OFF ( flags,
bit )   flags &= ~(1 << bit)

◆ FLAGS_SET_ON

#define FLAGS_SET_ON ( flags,
bit )   flags |= (1 << bit)

◆ IS_WAITING_GET

#define IS_WAITING_GET ( flags)    FLAGS_GET(flags, 0)

◆ IS_WAITING_SET_OFF

#define IS_WAITING_SET_OFF ( flags)    FLAGS_SET_OFF(flags, 0)

◆ IS_WAITING_SET_ON

#define IS_WAITING_SET_ON ( flags)    FLAGS_SET_ON(flags, 0)

Function Documentation

◆ BFLockCreate()

int BFLockCreate ( BFLock * lock)

Caller owns

◆ BFLockDestroy()

int BFLockDestroy ( BFLock * lock)

Releases memory

◆ BFLockIsValid()

bool BFLockIsValid ( BFLock * _lock)

Validates BFLock object

◆ BFLockIsWaiting()

bool BFLockIsWaiting ( BFLock * l)

true if lock is being blocked by BFLockWait

◆ BFLockLock()

int BFLockLock ( BFLock * lock)

Activates a mutex lock

◆ BFLockRelease()

int BFLockRelease ( BFLock * lock)

Releases BFLock waiting on BFLockWait

◆ BFLockTimedWait()

int BFLockTimedWait ( BFLock * l,
BFTime t )

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

◆ BFLockUnlock()

int BFLockUnlock ( BFLock * lock)

Unlocks a mutex lock

◆ BFLockWait()

int BFLockWait ( BFLock * lock)

Waits until BFLockRelease is called on object