Skip to content

Commit db3fdbf

Browse files
Some linux/posix optimizations
1 parent 22c9996 commit db3fdbf

8 files changed

Lines changed: 300 additions & 167 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ nob.old
1515
nob.exe
1616
nob.exe.old
1717
nob.obj
18+
19+
plug.plist

src/platform.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ typedef void *(*Platform_Thread_Function)(void *arg);
1414
Platform_Mutex *platform_mutex_create(void);
1515
void platform_mutex_destroy(Platform_Mutex *mutex);
1616
void platform_mutex_lock(Platform_Mutex *mutex);
17+
bool platform_mutex_try_lock(Platform_Mutex *mutex);
1718
void platform_mutex_unlock(Platform_Mutex *mutex);
1819

1920
Platform_Condition *platform_condition_create(void);

src/platform_posix.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ void platform_mutex_lock(Platform_Mutex *mutex)
4545
pthread_mutex_lock(&mutex->value);
4646
}
4747

48+
bool platform_mutex_try_lock(Platform_Mutex *mutex)
49+
{
50+
return pthread_mutex_trylock(&mutex->value) == 0;
51+
}
52+
4853
void platform_mutex_unlock(Platform_Mutex *mutex)
4954
{
5055
pthread_mutex_unlock(&mutex->value);

src/platform_windows.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ void platform_mutex_lock(Platform_Mutex *mutex)
4545
EnterCriticalSection(&mutex->value);
4646
}
4747

48+
bool platform_mutex_try_lock(Platform_Mutex *mutex)
49+
{
50+
return TryEnterCriticalSection(&mutex->value) != 0;
51+
}
52+
4853
void platform_mutex_unlock(Platform_Mutex *mutex)
4954
{
5055
LeaveCriticalSection(&mutex->value);

0 commit comments

Comments
 (0)