Initial commit

This commit is contained in:
2025-01-21 22:03:23 +03:00
commit 2ff6b1a454
21 changed files with 2541 additions and 0 deletions

22
inc/my_mutex.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef __MY_MUTEX_H__
#define __MY_MUTEX_H__
#include <pthread.h>
/**
* Макрос для pthread_mutex_t
* Использовать так:
* with_lock(&mtx)
* {
* secured_code();
* }
*/
#define __MY_MUTEX__CONCAT(x, y) x##y
#define __MY_MUTEX__UNIQUE_NAME(base) __MY_MUTEX__CONCAT(base, __LINE__)
#define with_lock(mutex) \
for (int __MY_MUTEX__UNIQUE_NAME(_once) = (pthread_mutex_lock(mutex), 1); \
__MY_MUTEX__UNIQUE_NAME(_once); \
pthread_mutex_unlock(mutex), __MY_MUTEX__UNIQUE_NAME(_once) = 0)
#endif //ifndef __MY_MUTEX_H__