renamed *lock to *acquirer
This commit is contained in:
parent
d508f7cb7a
commit
f1aba12af8
4 changed files with 42 additions and 42 deletions
|
|
@ -91,38 +91,38 @@ cinelerra_condition_broadcast (CinelerraCondition self)
|
|||
|
||||
|
||||
/**
|
||||
* conditionlock used to manage the state of a condition variable.
|
||||
* conditionacquirer used to manage the state of a condition variable.
|
||||
*/
|
||||
struct cinelerra_conditionlock_struct
|
||||
struct cinelerra_conditionacquirer_struct
|
||||
{
|
||||
CinelerraCondition cond;
|
||||
enum cinelerra_lockstate state;
|
||||
};
|
||||
typedef struct cinelerra_conditionlock_struct cinelerra_conditionlock;
|
||||
typedef struct cinelerra_conditionlock_struct* CinelerraConditionlock;
|
||||
typedef struct cinelerra_conditionacquirer_struct cinelerra_conditionacquirer;
|
||||
typedef struct cinelerra_conditionacquirer_struct* CinelerraConditionacquirer;
|
||||
|
||||
/* helper function for nobug */
|
||||
static inline void
|
||||
cinelerra_conditionlock_ensureunlocked (CinelerraConditionlock self)
|
||||
cinelerra_conditionacquirer_ensureunlocked (CinelerraConditionacquirer self)
|
||||
{
|
||||
ENSURE (self->state == CINELERRA_UNLOCKED, "forgot to unlock the condition mutex");
|
||||
}
|
||||
|
||||
/* override with a macro to use the cleanup checker */
|
||||
#define cinelerra_conditionlock \
|
||||
cinelerra_conditionlock NOBUG_CLEANUP(cinelerra_conditionlock_ensureunlocked)
|
||||
#define cinelerra_conditionacquirer \
|
||||
cinelerra_conditionacquirer NOBUG_CLEANUP(cinelerra_conditionacquirer_ensureunlocked)
|
||||
|
||||
|
||||
/**
|
||||
* initialize a conditionlock state
|
||||
* @param self conditionlock to be initialized, must be an automatic variable
|
||||
* initialize a conditionacquirer state
|
||||
* @param self conditionacquirer to be initialized, must be an automatic variable
|
||||
* @param cond associated condition variable
|
||||
* @param state initial state of the mutex, either CINELERRA_LOCKED or CINELERRA_UNLOCKED
|
||||
* @return self as given
|
||||
* errors are fatal
|
||||
*/
|
||||
static inline CinelerraConditionlock
|
||||
cinelerra_conditionlock_init (CinelerraConditionlock self, CinelerraCondition cond, enum cinelerra_lockstate state)
|
||||
static inline CinelerraConditionacquirer
|
||||
cinelerra_conditionacquirer_init (CinelerraConditionacquirer self, CinelerraCondition cond, enum cinelerra_lockstate state)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (cond);
|
||||
|
|
@ -138,10 +138,10 @@ cinelerra_conditionlock_init (CinelerraConditionlock self, CinelerraCondition co
|
|||
/**
|
||||
* lock the mutex.
|
||||
* must not already be locked
|
||||
* @param self conditionlock associated with a condition variable
|
||||
* @param self conditionacquirer associated with a condition variable
|
||||
*/
|
||||
static inline void
|
||||
cinelerra_conditionlock_lock (CinelerraConditionlock self)
|
||||
cinelerra_conditionacquirer_lock (CinelerraConditionacquirer self)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (self->state == CINELERRA_UNLOCKED, "mutex already locked");
|
||||
|
|
@ -156,10 +156,10 @@ cinelerra_conditionlock_lock (CinelerraConditionlock self)
|
|||
/**
|
||||
* wait on a locked condition.
|
||||
* Waits until the condition variable gets signaled from another thread. Must already be locked.
|
||||
* @param self conditionlock associated with a condition variable
|
||||
* @param self conditionacquirer associated with a condition variable
|
||||
*/
|
||||
static inline void
|
||||
cinelerra_conditionlock_wait (CinelerraConditionlock self)
|
||||
cinelerra_conditionacquirer_wait (CinelerraConditionacquirer self)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (self->state == CINELERRA_LOCKED, "mutex must be locked");
|
||||
|
|
@ -169,11 +169,11 @@ cinelerra_conditionlock_wait (CinelerraConditionlock self)
|
|||
|
||||
/**
|
||||
* release mutex.
|
||||
* a conditionlock must be unlocked before leaving scope
|
||||
* @param self conditionlock associated with a condition variable
|
||||
* a conditionacquirer must be unlocked before leaving scope
|
||||
* @param self conditionacquirer associated with a condition variable
|
||||
*/
|
||||
static inline int
|
||||
cinelerra_conditionlock_unlock (CinelerraConditionlock self)
|
||||
cinelerra_conditionacquirer_unlock (CinelerraConditionacquirer self)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (self->state == CINELERRA_LOCKED, "mutex was not locked");
|
||||
|
|
@ -185,10 +185,10 @@ cinelerra_conditionlock_unlock (CinelerraConditionlock self)
|
|||
|
||||
/**
|
||||
* signal a single waiting thread
|
||||
* @param self conditionlock associated with the condition variable to be signaled
|
||||
* @param self conditionacquirer associated with the condition variable to be signaled
|
||||
*/
|
||||
static inline void
|
||||
cinelerra_conditionlock_signal (CinelerraConditionlock self)
|
||||
cinelerra_conditionacquirer_signal (CinelerraConditionacquirer self)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (self->state == CINELERRA_LOCKED, "mutex was not locked");
|
||||
|
|
@ -198,10 +198,10 @@ cinelerra_conditionlock_signal (CinelerraConditionlock self)
|
|||
|
||||
/**
|
||||
* signal all waiting threads
|
||||
* @param self conditionlock associated with the condition variable to be signaled
|
||||
* @param self conditionacquirer associated with the condition variable to be signaled
|
||||
*/
|
||||
static inline int
|
||||
cinelerra_conditionlock_broadcast (CinelerraConditionlock self)
|
||||
cinelerra_conditionacquirer_broadcast (CinelerraConditionacquirer self)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (self->state == CINELERRA_LOCKED, "mutex was not locked");
|
||||
|
|
|
|||
|
|
@ -56,38 +56,38 @@ cinelerra_mutex_destroy (CinelerraMutex self);
|
|||
|
||||
|
||||
/**
|
||||
* mutexlock used to manage the state of a mutex variable.
|
||||
* mutexacquirer used to manage the state of a mutex variable.
|
||||
*/
|
||||
struct cinelerra_mutexlock_struct
|
||||
struct cinelerra_mutexacquirer_struct
|
||||
{
|
||||
CinelerraMutex mutex;
|
||||
enum cinelerra_lockstate state;
|
||||
};
|
||||
typedef struct cinelerra_mutexlock_struct cinelerra_mutexlock;
|
||||
typedef struct cinelerra_mutexlock_struct* CinelerraMutexlock;
|
||||
typedef struct cinelerra_mutexacquirer_struct cinelerra_mutexacquirer;
|
||||
typedef struct cinelerra_mutexacquirer_struct* CinelerraMutexacquirer;
|
||||
|
||||
/* helper function for nobug */
|
||||
static inline void
|
||||
cinelerra_mutexlock_ensureunlocked (CinelerraMutexlock self)
|
||||
cinelerra_mutexacquirer_ensureunlocked (CinelerraMutexacquirer self)
|
||||
{
|
||||
ENSURE (self->state == CINELERRA_UNLOCKED, "forgot to unlock mutex");
|
||||
}
|
||||
|
||||
/* override with a macro to use the cleanup checker */
|
||||
#define cinelerra_mutexlock \
|
||||
cinelerra_mutexlock NOBUG_CLEANUP(cinelerra_mutexlock_ensureunlocked)
|
||||
#define cinelerra_mutexacquirer \
|
||||
cinelerra_mutexacquirer NOBUG_CLEANUP(cinelerra_mutexacquirer_ensureunlocked)
|
||||
|
||||
|
||||
/**
|
||||
* initialize a mutexlock state
|
||||
* @param self mutexlock to be initialized, must be an automatic variable
|
||||
* initialize a mutexacquirer state
|
||||
* @param self mutexacquirer to be initialized, must be an automatic variable
|
||||
* @param mutex associated mutex
|
||||
* @param state initial state of the mutex, either CINELERRA_LOCKED or CINELERRA_UNLOCKED
|
||||
* @return self as given
|
||||
* errors are fatal
|
||||
*/
|
||||
static inline CinelerraMutexlock
|
||||
cinelerra_mutexlock_init (CinelerraMutexlock self, CinelerraMutex mutex, enum cinelerra_lockstate state)
|
||||
static inline CinelerraMutexacquirer
|
||||
cinelerra_mutexacquirer_init (CinelerraMutexacquirer self, CinelerraMutex mutex, enum cinelerra_lockstate state)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (mutex);
|
||||
|
|
@ -103,10 +103,10 @@ cinelerra_mutexlock_init (CinelerraMutexlock self, CinelerraMutex mutex, enum ci
|
|||
/**
|
||||
* lock the mutex.
|
||||
* must not already be locked
|
||||
* @param self mutexlock associated with a mutex variable
|
||||
* @param self mutexacquirer associated with a mutex variable
|
||||
*/
|
||||
static inline void
|
||||
cinelerra_mutexlock_lock (CinelerraMutexlock self)
|
||||
cinelerra_mutexacquirer_lock (CinelerraMutexacquirer self)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (self->state == CINELERRA_UNLOCKED, "mutex already locked");
|
||||
|
|
@ -120,11 +120,11 @@ cinelerra_mutexlock_lock (CinelerraMutexlock self)
|
|||
|
||||
/**
|
||||
* release mutex.
|
||||
* a mutexlock must be unlocked before leaving scope
|
||||
* @param self mutexlock associated with a mutex variable
|
||||
* a mutexacquirer must be unlocked before leaving scope
|
||||
* @param self mutexacquirer associated with a mutex variable
|
||||
*/
|
||||
static inline int
|
||||
cinelerra_mutexlock_unlock (CinelerraMutexlock self)
|
||||
cinelerra_mutexacquirer_unlock (CinelerraMutexacquirer self)
|
||||
{
|
||||
REQUIRE (self);
|
||||
REQUIRE (self->state == CINELERRA_LOCKED, "mutex was not locked");
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ conditionforgotunlock ()
|
|||
cinelerra_condition c;
|
||||
cinelerra_condition_init (&c);
|
||||
|
||||
cinelerra_conditionlock l;
|
||||
cinelerra_conditionlock_init (&l, &c, CINELERRA_LOCKED);
|
||||
cinelerra_conditionacquirer l;
|
||||
cinelerra_conditionacquirer_init (&l, &c, CINELERRA_LOCKED);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ int mutexforgotunlock()
|
|||
cinelerra_mutex m;
|
||||
cinelerra_mutex_init (&m);
|
||||
|
||||
cinelerra_mutexlock l;
|
||||
cinelerra_mutexlock_init (&l, &m, CINELERRA_LOCKED);
|
||||
cinelerra_mutexacquirer l;
|
||||
cinelerra_mutexacquirer_init (&l, &m, CINELERRA_LOCKED);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue