dialogs-api-lock.h 524 B

123456789101112131415161718
  1. #pragma once
  2. typedef osEventFlagsId_t FuriApiLock;
  3. #define API_LOCK_EVENT (1U << 0)
  4. #define API_LOCK_INIT_LOCKED() osEventFlagsNew(NULL);
  5. #define API_LOCK_WAIT_UNTIL_UNLOCK(_lock) \
  6. osEventFlagsWait(_lock, API_LOCK_EVENT, osFlagsWaitAny, osWaitForever);
  7. #define API_LOCK_FREE(_lock) osEventFlagsDelete(_lock);
  8. #define API_LOCK_UNLOCK(_lock) osEventFlagsSet(_lock, API_LOCK_EVENT);
  9. #define API_LOCK_WAIT_UNTIL_UNLOCK_AND_FREE(_lock) \
  10. API_LOCK_WAIT_UNTIL_UNLOCK(_lock); \
  11. API_LOCK_FREE(_lock);