[crac] RFR: Wake up all TIMED_WAITING threads after restore [v2]

Anton Kozlov akozlov at openjdk.org
Tue Jun 20 11:28:30 UTC 2023

On Tue, 20 Jun 2023 08:34:46 GMT, Radim Vansa <rvansa at openjdk.org> wrote:

>> This is a fix for an issue found by @jankratochvil when testing #53: Threads that enter sleep or timed parking use absolute monotonic time for pthread_cond_timedwait(). When the monotonic time changes during C/R we need to wake all threads to readjust the timeout to the new absolute time.
>> This introduces effectively a spurious wakeup; this is permitted for all the uses of pthread_cond_timedwait. Implementation either handles that transparently or propagates the wakeup to Java.
>> This commit does not handle timed waiting in non-Java threads other than WatcherThread.
> Radim Vansa has updated the pull request incrementally with one additional commit since the last revision:
>   Use Threads::java_threads_do, check spurious timeouts

src/hotspot/os/linux/os_linux.cpp line 6121:

> 6119: class WakeupClosure: public ThreadClosure {
> 6120:   void do_thread(Thread* thread) {
> 6121:     if (thread->is_Java_thread()) {

Redundant check? Since this is being called from java_threads_do


PR Review Comment: https://git.openjdk.org/crac/pull/85#discussion_r1235043594

More information about the crac-dev mailing list