Make CLOCK_MONOTONIC handling more precise in pal_threading.c #50441
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The root cause of the problem in #50388 turned out to be because we do not have
pthread_condattr_setclock(..., CLOCK_MONOTONIC);on iOS.This caused the timeout argument for
pthread_cond_timedwaitto be interpreted as an absolute system time (in seconds since the Unix epoch), however the value we got back fromclock_gettime(CLOCK_MONOTONIC, ...)was actually some value based on the uptime of the system.Since the uptime is much smaller than the system time the wait immediately returned.
Harden the handling by adding a check for
HAVE_PTHREAD_CONDATTR_SETCLOCKlike we already do inSystemNative_LowLevelMonitor_Create()