Skip to content

Conversation

@macdrevx
Copy link

@macdrevx macdrevx commented Aug 4, 2025

Clone of reddavis#61

The expression UInt64(self.dueTime - Date().timeIntervalSince(lastEmission)) crashes if self.dueTime - Date().timeIntervalSince(lastEmission) is less than UInt64.min.

Since Date().timeIntervalSince(lastEmission) seems like it normally evaluates to something near 0, the suspicion is that the crash must occur when the process is suspended in between lastEmission = Date() and Date().timeIntervalSince(lastEmission).

This commit removes lastEmission entirely and ensures that the value passed to UInt64.min is non-negative.

The expression `UInt64(self.dueTime - Date().timeIntervalSince(lastEmission))`
crashes if `self.dueTime - Date().timeIntervalSince(lastEmission)` is
less than `UInt64.min`.

Since `Date().timeIntervalSince(lastEmission)` seems like it normally
evaluates to something near 0, the suspicion is that the crash must
occur when the process is suspended in between `lastEmission = Date()`
and `Date().timeIntervalSince(lastEmission)`.

This commit removes `lastEmission` entirely and ensures that the value
passed to `UInt64.min` is non-negative.

Fixes reddavis#60
@macdrevx macdrevx merged commit d04a2b4 into main Aug 4, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants