mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-08 19:44:45 +08:00
improve semaphore
This commit is contained in:
parent
9c941b1c25
commit
e47f152f32
@ -49,7 +49,11 @@ tk_semaphore_t* tk_semaphore_create(uint32_t value, const char* name) {
|
||||
semaphore = NULL;
|
||||
}
|
||||
#elif defined(WIN32)
|
||||
semaphore->sem = CreateSemaphore(NULL, MAX_RUNNUM, MAX_RUNNUM, name);
|
||||
semaphore->sem = CreateSemaphore(NULL, value, INT_MAX, name);
|
||||
if (semaphore->sem == NULL) {
|
||||
TKMEM_FREE(semaphore);
|
||||
semaphore = NULL;
|
||||
}
|
||||
#endif /*HAS_PTHREAD*/
|
||||
|
||||
return semaphore;
|
||||
@ -86,7 +90,7 @@ ret_t tk_semaphore_post(tk_semaphore_t* semaphore) {
|
||||
#ifdef HAS_PTHREAD
|
||||
return_value_if_fail(sem_post(semaphore->sem) == 0, RET_FAIL);
|
||||
#elif defined(WIN32)
|
||||
ReleaseSemaphore(semaphore->sem, 1, NULL);
|
||||
return_value_if_fail(ReleaseSemaphore(semaphore->sem, 1, NULL), RET_FAIL);
|
||||
#endif /*HAS_PTHREAD*/
|
||||
|
||||
return RET_OK;
|
||||
|
@ -13,7 +13,7 @@ static void* thread_entry(void* args) {
|
||||
}
|
||||
|
||||
TEST(Semaphore, basic) {
|
||||
tk_semaphore_t* sem = tk_semaphore_create(1, "hello");
|
||||
tk_semaphore_t* sem = tk_semaphore_create(0, "hello");
|
||||
tk_thread_t* thread = tk_thread_create(thread_entry, sem);
|
||||
|
||||
tk_thread_start(thread);
|
||||
|
Loading…
x
Reference in New Issue
Block a user