Revision: 23593 http://trac.macosforge.org/projects/launchd/changeset/23593 Author: zarzycki@apple.com Date: 2008-04-08 13:37:28 -0700 (Tue, 08 Apr 2008) Log Message: ----------- <rdar://problem/5849623> Workaround 5225889 consistently Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-04-08 16:37:06 UTC (rev 23592) +++ trunk/launchd/src/launchd_core_logic.c 2008-04-08 20:37:28 UTC (rev 23593) @@ -3447,9 +3447,6 @@ head_later = LIST_FIRST(&sorted_calendar_events)->when_next; - /* Workaround 5225889 */ - kevent_mod((uintptr_t)&sorted_calendar_events, EVFILT_TIMER, EV_DELETE, 0, 0, root_jobmgr); - if (job_assumes(j, kevent_mod((uintptr_t)&sorted_calendar_events, EVFILT_TIMER, EV_ADD, NOTE_ABSOLUTE|NOTE_SECONDS, head_later, root_jobmgr) != -1)) { char time_string[100]; size_t time_string_len; @@ -5867,9 +5864,6 @@ } else if (inval) { if (j->start_interval == 0) { runtime_add_weak_ref(); - } else { - /* Workaround 5225889 */ - job_assumes(j, kevent_mod((uintptr_t)&j->start_interval, EVFILT_TIMER, EV_DELETE, 0, 0, j) != -1); } j->start_interval = inval; job_assumes(j, kevent_mod((uintptr_t)&j->start_interval, EVFILT_TIMER, EV_ADD, NOTE_SECONDS, j->start_interval, j) != -1); Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2008-04-08 16:37:06 UTC (rev 23592) +++ trunk/launchd/src/launchd_runtime.c 2008-04-08 20:37:28 UTC (rev 23593) @@ -840,6 +840,12 @@ case EVFILT_READ: case EVFILT_WRITE: break; + case EVFILT_TIMER: + /* Workaround 5225889 */ + if (flags & EV_ADD) { + kevent_mod(ident, EVFILT_TIMER, EV_DELETE, 0, 0, NULL); + } + /* fall through */ default: flags |= EV_CLEAR; break;