diff --git a/winsup/cygwin/timer.cc b/winsup/cygwin/timer.cc index e92cbad2a..802aa444a 100644 --- a/winsup/cygwin/timer.cc +++ b/winsup/cygwin/timer.cc @@ -284,8 +284,8 @@ timer_tracker::clean_and_unhook () void timer_tracker::fixup_after_fork () { - hcancel = syncthread = NULL; - for (timer_tracker *tt = this; tt->next != NULL; /* nothing */) + ttstart.hcancel = ttstart.syncthread = NULL; + for (timer_tracker *tt = &ttstart; tt->next != NULL; /* nothing */) { timer_tracker *deleteme = tt->next; tt->next = deleteme->next; @@ -297,7 +297,7 @@ timer_tracker::fixup_after_fork () void fixup_timers_after_fork () { - ttstart.fixup_after_fork (); + timer_tracker::fixup_after_fork (); } extern "C" int diff --git a/winsup/cygwin/timer.h b/winsup/cygwin/timer.h index 9a35eb316..4a961fcb0 100644 --- a/winsup/cygwin/timer.h +++ b/winsup/cygwin/timer.h @@ -35,7 +35,7 @@ class timer_tracker int clean_and_unhook (); DWORD thread_func (); - void fixup_after_fork (); + static void fixup_after_fork (); }; #endif /* __TIMER_H__ */