 acb8508249
			
		
	
	
		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);
 |