Handle non-hour DST folds and qualify timer delivery clocks - #210
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
A 30-minute daylight-saving rollback selected the second copy of a civil time because firstOccurrence assumed every fold was one hour. Use the timezone transition's actual offset difference and retain the identical civil date/time check. Permanent engine regressions reproduce the Lord Howe failure and cover spring gaps, first-fold delivery, rejection of the second copy and next-day delivery in New York, Berlin and Lord Howe.
Correct the qualification clock as well: pending waits now use uptime rather than wall timestamps, and simulated Windows resume advances elapsed uptime and due waits. Both prior model defects reproduce; a maximum-duration wait remains valid without signed overflow. Engine resume covers all four clock domains. A public manager regression proves persistent catch-up across two 72-hour gaps preserves an already-active invocation and one launch while recording new completed activation identities. Standalone test binaries embed timezone data.
Final full uncached race tests passed (manager 63.049s, journal 41.112s, timers 3.253s), vet and Windows/Linux staticcheck passed. Twenty final DST/resume repetitions passed (2.021s); earlier twenty complete timer-package and manager clock matrices passed (12.311s/4.966s). Complete source/test/documentation/privacy/whitespace review passed.
Exact source
15942407303668886da884582131fb7bcabe546apassed CI 34771224682. All 90 cases passed three times per native SYSTEM/headless standard-user identity (13.305s/10.006s), without skips. Four test-binary hashes, clean source/module identity, retained results and complete fixture/process/profile/linger cleanup were verified. Simulated resume establishes scheduler policy; it is not a claim of physical sleep or hibernation qualification. R5 acceptance remains open pending the recorded evidence and its other work packages.