notify: declare "struct notify"
"struct notify" is the same as the "Notify" typedef. It can be forward-declared and has a lower case name.
This commit is contained in:
parent
35216db8db
commit
770b140534
12
src/notify.c
12
src/notify.c
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
#include "notify.h"
|
#include "notify.h"
|
||||||
|
|
||||||
int notify_init(Notify *notify)
|
int notify_init(struct notify *notify)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -37,30 +37,30 @@ int notify_init(Notify *notify)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void notify_enter(Notify *notify)
|
void notify_enter(struct notify *notify)
|
||||||
{
|
{
|
||||||
pthread_mutex_lock(¬ify->mutex);
|
pthread_mutex_lock(¬ify->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void notify_leave(Notify *notify)
|
void notify_leave(struct notify *notify)
|
||||||
{
|
{
|
||||||
pthread_mutex_unlock(¬ify->mutex);
|
pthread_mutex_unlock(¬ify->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void notify_wait(Notify *notify)
|
void notify_wait(struct notify *notify)
|
||||||
{
|
{
|
||||||
if (!notify->pending)
|
if (!notify->pending)
|
||||||
pthread_cond_wait(¬ify->cond, ¬ify->mutex);
|
pthread_cond_wait(¬ify->cond, ¬ify->mutex);
|
||||||
notify->pending = 0;
|
notify->pending = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void notify_signal(Notify *notify)
|
void notify_signal(struct notify *notify)
|
||||||
{
|
{
|
||||||
notify->pending = 1;
|
notify->pending = 1;
|
||||||
pthread_cond_signal(¬ify->cond);
|
pthread_cond_signal(¬ify->cond);
|
||||||
}
|
}
|
||||||
|
|
||||||
void notify_signal_sync(Notify *notify)
|
void notify_signal_sync(struct notify *notify)
|
||||||
{
|
{
|
||||||
pthread_mutex_lock(¬ify->mutex);
|
pthread_mutex_lock(¬ify->mutex);
|
||||||
notify_signal(notify);
|
notify_signal(notify);
|
||||||
|
14
src/notify.h
14
src/notify.h
@ -21,40 +21,40 @@
|
|||||||
|
|
||||||
#include "os_compat.h"
|
#include "os_compat.h"
|
||||||
|
|
||||||
typedef struct _Notify {
|
typedef struct notify {
|
||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
pthread_cond_t cond;
|
pthread_cond_t cond;
|
||||||
int pending;
|
int pending;
|
||||||
} Notify;
|
} Notify;
|
||||||
|
|
||||||
int notify_init(Notify *notify);
|
int notify_init(struct notify *notify);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The thread which shall be notified by this object must call this
|
* The thread which shall be notified by this object must call this
|
||||||
* function before any notify_wait() invocation. It locks the mutex.
|
* function before any notify_wait() invocation. It locks the mutex.
|
||||||
*/
|
*/
|
||||||
void notify_enter(Notify *notify);
|
void notify_enter(struct notify *notify);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Neutralize notify_leave().
|
* Neutralize notify_leave().
|
||||||
*/
|
*/
|
||||||
void notify_leave(Notify *notify);
|
void notify_leave(struct notify *notify);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wait for a notification. Return immediately if we have already
|
* Wait for a notification. Return immediately if we have already
|
||||||
* been notified since we last returned from notify_wait().
|
* been notified since we last returned from notify_wait().
|
||||||
*/
|
*/
|
||||||
void notify_wait(Notify *notify);
|
void notify_wait(struct notify *notify);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify the thread. This function never blocks.
|
* Notify the thread. This function never blocks.
|
||||||
*/
|
*/
|
||||||
void notify_signal(Notify *notify);
|
void notify_signal(struct notify *notify);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify the thread synchonously, i.e. wait until it has received the
|
* Notify the thread synchonously, i.e. wait until it has received the
|
||||||
* notification.
|
* notification.
|
||||||
*/
|
*/
|
||||||
void notify_signal_sync(Notify *notify);
|
void notify_signal_sync(struct notify *notify);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user