acb8508249
* Dialogs: fix queued message lock * Dialogs: file select, fix queued message lock * Dialogs: file select, free context after freeing callback holder * Dialogs: better lock, separated wait and free Co-authored-by: あく <alleteam@gmail.com>
19 lines
524 B
C
19 lines
524 B
C
#pragma once
|
|
|
|
typedef osEventFlagsId_t FuriApiLock;
|
|
|
|
#define API_LOCK_EVENT (1U << 0)
|
|
|
|
#define API_LOCK_INIT_LOCKED() osEventFlagsNew(NULL);
|
|
|
|
#define API_LOCK_WAIT_UNTIL_UNLOCK(_lock) \
|
|
osEventFlagsWait(_lock, API_LOCK_EVENT, osFlagsWaitAny, osWaitForever);
|
|
|
|
#define API_LOCK_FREE(_lock) osEventFlagsDelete(_lock);
|
|
|
|
#define API_LOCK_UNLOCK(_lock) osEventFlagsSet(_lock, API_LOCK_EVENT);
|
|
|
|
#define API_LOCK_WAIT_UNTIL_UNLOCK_AND_FREE(_lock) \
|
|
API_LOCK_WAIT_UNTIL_UNLOCK(_lock); \
|
|
API_LOCK_FREE(_lock);
|