Skip to content

Commit 9bf65f6

Browse files
feedback: Make scheduleCallback throwing
1 parent 21fd1cc commit 9bf65f6

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

Benchmarks/Benchmarks/NIOPosixBenchmarks/Benchmarks.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ let benchmarks = {
101101

102102
benchmark.startMeasurement()
103103
for _ in benchmark.scaledIterations {
104-
let handle = loop.scheduleCallback(in: .hours(1), handler: timer)
104+
let handle = try! loop.scheduleCallback(in: .hours(1), handler: timer)
105105
}
106106
}
107107
}

Sources/NIOCore/EventLoop.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -363,15 +363,15 @@ public protocol EventLoop: EventLoopGroup {
363363
/// ``scheduleCallback(at:handler:)-5ryox`` and ``cancelScheduledCallback(_:)-1lfz0``. Failure to do so will
364364
/// result in a runtime error.
365365
@discardableResult
366-
func scheduleCallback(at deadline: NIODeadline, handler: some NIOScheduledCallbackHandler) -> NIOScheduledCallback
366+
func scheduleCallback(at deadline: NIODeadline, handler: some NIOScheduledCallbackHandler) throws -> NIOScheduledCallback
367367

368368
/// Schedule a callback after given time.
369369
///
370370
/// - NOTE: Event loops that provide a custom scheduled callback implementation **must** implement _both_
371371
/// ``scheduleCallback(at:handler:)-5ryox`` and ``cancelScheduledCallback(_:)-1lfz0``. Failure to do so will
372372
/// result in a runtime error.
373373
@discardableResult
374-
func scheduleCallback(in amount: TimeAmount, handler: some NIOScheduledCallbackHandler) -> NIOScheduledCallback
374+
func scheduleCallback(in amount: TimeAmount, handler: some NIOScheduledCallbackHandler) throws -> NIOScheduledCallback
375375

376376
/// Cancel a scheduled callback.
377377
///

Sources/NIOCore/NIOScheduledCallback.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ extension EventLoop {
8686
/// Default implementation of `scheduleCallback(in amount:handler:)`: calls `scheduleCallback(at deadline:handler:)`.
8787
@discardableResult
8888
@inlinable
89-
public func scheduleCallback(in amount: TimeAmount, handler: some NIOScheduledCallbackHandler) -> NIOScheduledCallback {
90-
self.scheduleCallback(at: .now() + amount, handler: handler)
89+
public func scheduleCallback(in amount: TimeAmount, handler: some NIOScheduledCallbackHandler) throws -> NIOScheduledCallback {
90+
try self.scheduleCallback(at: .now() + amount, handler: handler)
9191
}
9292

9393
/// Default implementation of `cancelScheduledCallback(_:)`: only cancels callbacks scheduled by the default implementation of `scheduleCallback`.

Sources/NIOPosix/SelectableEventLoop.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -897,10 +897,10 @@ internal func assertExpression(_ body: () -> Bool) {
897897

898898
extension SelectableEventLoop {
899899
@inlinable
900-
func scheduleCallback(at deadline: NIODeadline, handler: some NIOScheduledCallbackHandler) -> NIOScheduledCallback {
900+
func scheduleCallback(at deadline: NIODeadline, handler: some NIOScheduledCallbackHandler) throws -> NIOScheduledCallback {
901901
let taskID = self.scheduledTaskCounter.loadThenWrappingIncrement(ordering: .relaxed)
902902
let task = ScheduledTask(id: taskID, handler, deadline)
903-
try! self._schedule0(.scheduled(task))
903+
try self._schedule0(.scheduled(task))
904904
return NIOScheduledCallback(self, id: taskID)
905905
}
906906

0 commit comments

Comments
 (0)