diff --git a/TESTS/mbed_drivers/timeout/timeout_tests.h b/TESTS/mbed_drivers/timeout/timeout_tests.h index 8ff5c6589a..98b7886261 100644 --- a/TESTS/mbed_drivers/timeout/timeout_tests.h +++ b/TESTS/mbed_drivers/timeout/timeout_tests.h @@ -201,8 +201,8 @@ void test_no_wait(void) Semaphore sem(0, 1); T timeout; timeout.attach_callback(mbed::callback(sem_callback, &sem), 0ULL); - int32_t sem_slots = sem.wait(0); - TEST_ASSERT_EQUAL(1, sem_slots); + bool sem_acquired = sem.try_acquire(); + TEST_ASSERT_EQUAL(true, sem_acquired); timeout.detach(); } } diff --git a/UNITTESTS/stubs/Semaphore_stub.cpp b/UNITTESTS/stubs/Semaphore_stub.cpp index 462f959c71..9099bfd903 100644 --- a/UNITTESTS/stubs/Semaphore_stub.cpp +++ b/UNITTESTS/stubs/Semaphore_stub.cpp @@ -38,16 +38,6 @@ void Semaphore::constructor(int32_t count, uint16_t max_count) } -int32_t Semaphore::wait(uint32_t millisec) -{ - return Semaphore_stub::wait_return_value; -} - -int32_t Semaphore::wait_until(uint64_t millisec) -{ - return Semaphore_stub::wait_return_value; -} - void Semaphore::acquire() { diff --git a/features/FEATURE_BLE/targets/TARGET_STM/TARGET_STM32WB/HCIDriver.cpp b/features/FEATURE_BLE/targets/TARGET_STM/TARGET_STM32WB/HCIDriver.cpp index 7ebdb1ec89..c85fda35bc 100644 --- a/features/FEATURE_BLE/targets/TARGET_STM/TARGET_STM32WB/HCIDriver.cpp +++ b/features/FEATURE_BLE/targets/TARGET_STM/TARGET_STM32WB/HCIDriver.cpp @@ -757,7 +757,7 @@ static bool acl_data_wait(void) /* Wait 10 sec for previous ACL command to be ack'ed by Low Layers * before sending the next one */ - if (acl_ack_sem.wait(10000) < 1) { + if (!acl_ack_sem.try_acquire_for(10000)) { return false; } else { return true; @@ -777,7 +777,7 @@ static void sysevt_received(void *pdata) static bool sysevt_wait(void) { /* Wait for 10sec max - if not return an error */ - if (sys_event_sem.wait(10000) < 1) { + if (!sys_event_sem.try_acquire_for(10000)) { return false; } else { /* release immmediately, now that M0 runs */ @@ -791,7 +791,7 @@ static bool sysevt_wait(void) static bool sysevt_check(void) { /* Check if system is UP and runing already */ - if (sys_event_sem.wait(10) < 1) { + if (!sys_event_sem.try_acquire_for(10)) { return false; } else { /* release immmediately as M0 already runs */ @@ -822,7 +822,7 @@ void shci_cmd_resp_release(uint32_t flag) void shci_cmd_resp_wait(uint32_t timeout) { /* TO DO: manage timeouts if we can return an error */ - if (sys_resp_sem.wait(timeout) < 1) { + if (!sys_resp_sem.try_acquire_for(timeout)) { tr_error("shci_cmd_resp_wait timed out"); } } diff --git a/rtos/Semaphore.h b/rtos/Semaphore.h index f5fbc69fcb..60eaba85d9 100644 --- a/rtos/Semaphore.h +++ b/rtos/Semaphore.h @@ -62,34 +62,6 @@ public: */ Semaphore(int32_t count, uint16_t max_count); - /** Wait until a Semaphore resource becomes available. - - @deprecated Do not use this function. This function has been replaced with acquire(), try_acquire() and try_acquire_for() functions. - - @param millisec timeout value. (default: osWaitForever). - @return number of available tokens, before taking one; or -1 in case of incorrect parameters - - @note You may call this function from ISR context if the millisec parameter is set to 0. - */ - MBED_DEPRECATED_SINCE("mbed-os-5.13", "Replaced with acquire, try_acquire() and try_acquire_for() functions") - int32_t wait(uint32_t millisec = osWaitForever); - - /** Wait until a Semaphore resource becomes available. - - @deprecated Do not use this function. This function has been replaced with try_acquire_until(). - - @param millisec absolute timeout time, referenced to Kernel::get_ms_count() - @return number of available tokens, before taking one; or -1 in case of incorrect parameters - @note the underlying RTOS may have a limit to the maximum wait time - due to internal 32-bit computations, but this is guaranteed to work if the - wait is <= 0x7fffffff milliseconds (~24 days). If the limit is exceeded, - the acquire attempt will time out earlier than specified. - - @note You cannot call this function from ISR context. - */ - MBED_DEPRECATED_SINCE("mbed-os-5.13", "Replaced with try_acquire_until()") - int32_t wait_until(uint64_t millisec); - /** Wait until a Semaphore resource becomes available. @note You cannot call this function from ISR context. diff --git a/rtos/source/Semaphore.cpp b/rtos/source/Semaphore.cpp index 65016137cc..137e8563a9 100644 --- a/rtos/source/Semaphore.cpp +++ b/rtos/source/Semaphore.cpp @@ -87,63 +87,6 @@ bool Semaphore::try_acquire() #endif } -#if MBED_CONF_RTOS_PRESENT -/* To sidestep deprecation warnings */ -int32_t Semaphore::_wait(uint32_t millisec) -{ - osStatus_t stat = osSemaphoreAcquire(_id, millisec); - switch (stat) { - case osOK: - return osSemaphoreGetCount(_id) + 1; - case osErrorTimeout: - case osErrorResource: - return 0; - case osErrorParameter: - default: - return -1; - } -} -#endif - -int32_t Semaphore::wait(uint32_t millisec) -{ -#if MBED_CONF_RTOS_PRESENT - return _wait(millisec); -#else - sem_wait_capture capture = { this, false }; - mbed::internal::do_timed_sleep_relative_or_forever(millisec, semaphore_available, &capture); - if (capture.acquired) { - return core_util_atomic_load_s32(&_count) + 1; - } else { - return 0; - } -#endif -} - -int32_t Semaphore::wait_until(uint64_t millisec) -{ -#if MBED_CONF_RTOS_PRESENT - uint64_t now = Kernel::get_ms_count(); - - if (now >= millisec) { - return _wait(0); - } else if (millisec - now >= osWaitForever) { - // API permits early return - return _wait(osWaitForever - 1); - } else { - return _wait(millisec - now); - } -#else - sem_wait_capture capture = { this, false }; - mbed::internal::do_timed_sleep_absolute(millisec, semaphore_available, &capture); - if (capture.acquired) { - return core_util_atomic_load_s32(&_count) + 1; - } else { - return 0; - } -#endif -} - void Semaphore::acquire() { #if MBED_CONF_RTOS_PRESENT