summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-01-09 09:17:05 -0500
committerBen Gamari <ben@smart-cactus.org>2019-01-28 18:07:38 -0500
commit4f180640f3a398bd75e1406111a74eb61a44a529 (patch)
tree6c1280bc8359f35a40df347d9b9301750cbae303
parent7ec385f40406a23da7a52fd5a07131efb8973233 (diff)
downloadhaskell-4f180640f3a398bd75e1406111a74eb61a44a529.tar.gz
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. (cherry picked from commit ce11f6f25c1160262830d9670c4eaaebac37cbaf)
-rw-r--r--rts/posix/itimer/Pthread.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/rts/posix/itimer/Pthread.c b/rts/posix/itimer/Pthread.c
index 90923c69c8..6cc211b401 100644
--- a/rts/posix/itimer/Pthread.c
+++ b/rts/posix/itimer/Pthread.c
@@ -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 */