From 3c39f76365d6307c28c11f43347c69fe2aa54295 Mon Sep 17 00:00:00 2001 From: factosea <285808407@qq.com> Date: Tue, 14 May 2024 16:52:53 +0800 Subject: [PATCH] tsem_wait --- source/os/src/osSemaphore.c | 17 ++++++----------- source/os/test/osSemaphoreTests.cpp | 13 ++++++------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/source/os/src/osSemaphore.c b/source/os/src/osSemaphore.c index 21b255ca32..8f315238c8 100644 --- a/source/os/src/osSemaphore.c +++ b/source/os/src/osSemaphore.c @@ -249,17 +249,12 @@ int tsem_destroy(tsem_t* sem) { int32_t tsem_wait(tsem_t* sem) { taosThreadMutexLock(&sem->mutex); while (sem->count <= 0) { - struct timespec timeout; - clock_gettime(CLOCK_MONOTONIC, &timeout); - timeout.tv_sec += 9; - - while (sem->count <= 0) { - int ret = taosThreadCondTimedWait(&sem->cond, &sem->mutex, &timeout); - if (ret == ETIMEDOUT) { - continue; - } else { - return ret; - } + int ret = taosThreadCondWait(&sem->cond, &sem->mutex); + if (0 == ret) { + continue; + } else { + taosThreadMutexUnlock(&sem->mutex); + return ret; } } sem->count--; diff --git a/source/os/test/osSemaphoreTests.cpp b/source/os/test/osSemaphoreTests.cpp index c9368d6567..3a7edc7c8a 100644 --- a/source/os/test/osSemaphoreTests.cpp +++ b/source/os/test/osSemaphoreTests.cpp @@ -49,12 +49,12 @@ TEST(osSemaphoreTests, Destroy) { } // skip, tsem_wait can not stopped, will block test. -TEST(osSemaphoreTests, Wait) { - tsem_t sem; - tsem_init(&sem, 0, 0); - ASSERT_EQ(tsem_wait(&sem), -1); - tsem_destroy(&sem); -} +// TEST(osSemaphoreTests, Wait) { +// tsem_t sem; +// tsem_init(&sem, 0, 0); +// ASSERT_EQ(tsem_wait(&sem), -1); +// tsem_destroy(&sem); +// } TEST(osSemaphoreTests, WaitTime0) { tsem_t sem; @@ -71,7 +71,6 @@ TEST(osSemaphoreTests, WaitTime1) { tsem_destroy(&sem); } - TEST(osSemaphoreTests, WaitAndPost) { tsem_t sem; int result = tsem_init(&sem, 0, 0);