Commit ce11f6f2 authored by Ben Gamari's avatar Ben Gamari 🐢 Committed by Ben Gamari

rts: Use always-available locking operations in pthread Itimer implementation

Previously we ACQUIRE_LOCK and RELEASE_LOCK but these compile to a noop in the
non-threaded RTS, as noted in #16150. Use OS_ACQUIRE_LOCK and OS_RELEASE_LOCK
instead.
parent 7b12b3f0
......@@ -134,12 +134,12 @@ static void *itimer_thread_func(void *_handle_tick)
// first try a cheap test
if (stopped) {
ACQUIRE_LOCK(&mutex);
OS_ACQUIRE_LOCK(&mutex);
// should we really stop?
if (stopped) {
waitCondition(&start_cond, &mutex);
}
RELEASE_LOCK(&mutex);
OS_RELEASE_LOCK(&mutex);
} else {
handle_tick(0);
}
......@@ -176,19 +176,19 @@ initTicker (Time interval, TickProc handle_tick)
void
startTicker(void)
{
ACQUIRE_LOCK(&mutex);
OS_ACQUIRE_LOCK(&mutex);
stopped = 0;
signalCondition(&start_cond);
RELEASE_LOCK(&mutex);
OS_RELEASE_LOCK(&mutex);
}
/* There may be at most one additional tick fired after a call to this */
void
stopTicker(void)
{
ACQUIRE_LOCK(&mutex);
OS_ACQUIRE_LOCK(&mutex);
stopped = 1;
RELEASE_LOCK(&mutex);
OS_RELEASE_LOCK(&mutex);
}
/* There may be at most one additional tick fired after a call to this */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment