scheduleRepeating(wallDeadline:interval:leeway:)
Sets the deadline, interval and leeway for a timer event that fires at least once.
This declaration has been renamed to schedule(wallDeadline:repeating:leeway:).
This declaration was deprecated in Swift 4.
func scheduleRepeating(wallDeadline: DispatchWallTime, interval: Double, leeway: DispatchTimeInterval = .nanoseconds(0))
Parameters
- wallDeadline
the time at which the timer event will be delivered, subject to the leeway and other considerations described above. The deadline is based on
gettimeofday(3)
.- interval
the interval for the timer in seconds.
- leeway
the leeway for the timer.
Once this function returns, any pending source data accumulated for the previous timer values has been cleared. The next timer event will occur at wallDeadline
and every interval
seconds thereafter until the timer source is canceled.
Delivery of a timer event may be delayed by the system in order to improve power consumption and system performance. The upper limit to the allowable delay may be configured with the leeway
argument; the lower limit is under the control of the system.
For the initial timer fire at wallDeadline
, the upper limit to the allowable delay is set to leeway
. For the subsequent timer fires at wallDeadline + N * interval
, the upper limit is the smaller of leeway
and interval/2
.
The lower limit to the allowable delay may vary with process state such as visibility of the application UI. If the timer source was created with flags TimerFlags.strict
, the system will make a best effort to strictly observe the provided leeway
value, even if it is smaller than the current lower limit. Note that a minimal amount of delay is to be expected even if this flag is specified.
Calling this method has no effect if the timer source has already been canceled.