Skip to content

Commit 6ef8bd5

Browse files
committed
Define struct os_mutex_t in utils_concurrency.h
Define struct os_mutex_t in utils_concurrency.h and use it in utils_windows_concurrency.h Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 7c52a0d commit 6ef8bd5

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

src/utils/utils_concurrency.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,21 @@
1414
#if defined(_WIN32)
1515
#include <windows.h>
1616
#else
17+
#include <pthread.h>
1718
#include <stdatomic.h>
1819
#endif
1920

2021
#ifdef __cplusplus
2122
extern "C" {
2223
#endif
2324

24-
struct os_mutex_t;
25-
26-
typedef struct os_mutex_t os_mutex_t;
25+
typedef struct os_mutex_t {
26+
#ifdef _WIN32
27+
CRITICAL_SECTION lock;
28+
#else
29+
pthread_mutex_t lock;
30+
#endif
31+
} os_mutex_t;
2732

2833
size_t util_mutex_get_size(void);
2934
os_mutex_t *util_mutex_init(void *ptr);

src/utils/utils_windows_concurrency.c

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,10 @@
99

1010
#include "utils_concurrency.h"
1111

12-
typedef struct {
13-
CRITICAL_SECTION lock;
14-
} internal_os_mutex_t;
15-
16-
size_t util_mutex_get_size(void) { return sizeof(internal_os_mutex_t); }
12+
size_t util_mutex_get_size(void) { return sizeof(os_mutex_t); }
1713

1814
os_mutex_t *util_mutex_init(void *ptr) {
19-
internal_os_mutex_t *mutex_internal = (internal_os_mutex_t *)ptr;
15+
os_mutex_t *mutex_internal = (os_mutex_t *)ptr;
2016
InitializeCriticalSection(&mutex_internal->lock);
2117
return (os_mutex_t *)mutex_internal;
2218
}
@@ -26,7 +22,7 @@ os_mutex_t *util_mutex_create(void) {
2622
}
2723

2824
void util_mutex_destroy_not_free(os_mutex_t *mutex) {
29-
internal_os_mutex_t *mutex_internal = (internal_os_mutex_t *)mutex;
25+
os_mutex_t *mutex_internal = (os_mutex_t *)mutex;
3026
DeleteCriticalSection(&mutex_internal->lock);
3127
}
3228

@@ -35,7 +31,7 @@ void util_mutex_destroy(os_mutex_t *mutex) {
3531
}
3632

3733
int util_mutex_lock(os_mutex_t *mutex) {
38-
internal_os_mutex_t *mutex_internal = (internal_os_mutex_t *)mutex;
34+
os_mutex_t *mutex_internal = (os_mutex_t *)mutex;
3935
EnterCriticalSection(&mutex_internal->lock);
4036

4137
if (mutex_internal->lock.RecursionCount > 1) {
@@ -47,7 +43,7 @@ int util_mutex_lock(os_mutex_t *mutex) {
4743
}
4844

4945
int util_mutex_unlock(os_mutex_t *mutex) {
50-
internal_os_mutex_t *mutex_internal = (internal_os_mutex_t *)mutex;
46+
os_mutex_t *mutex_internal = (os_mutex_t *)mutex;
5147
LeaveCriticalSection(&mutex_internal->lock);
5248
return 0;
5349
}

0 commit comments

Comments
 (0)