You've already forked glider
mirror of
https://gitlab.com/zephray/glider.git
synced 2026-07-29 02:40:39 +00:00
32 lines
695 B
C
32 lines
695 B
C
#include "wake_event_latch.h"
|
|
|
|
#include <stddef.h>
|
|
|
|
void wake_event_latch_arm(wake_event_latch_t *latch) {
|
|
if (latch == NULL)
|
|
return;
|
|
latch->pending = false;
|
|
latch->armed = true;
|
|
}
|
|
|
|
void wake_event_latch_disarm(wake_event_latch_t *latch) {
|
|
if (latch == NULL)
|
|
return;
|
|
latch->armed = false;
|
|
latch->pending = false;
|
|
}
|
|
|
|
void wake_event_latch_signal(wake_event_latch_t *latch) {
|
|
if ((latch != NULL) && latch->armed)
|
|
latch->pending = true;
|
|
}
|
|
|
|
bool wake_event_latch_take(wake_event_latch_t *latch) {
|
|
if ((latch == NULL) || !latch->armed)
|
|
return false;
|
|
|
|
bool pending = latch->pending;
|
|
latch->pending = false;
|
|
return pending;
|
|
}
|