@@ -252,15 +252,32 @@ extension CheckedContinuation {
252252 }
253253}
254254
255- /// Suspends the current task,
256- /// then calls the given closure with a checked continuation for the current task.
255+ /// Invokes the passed in closure with a checked continuation for the current task.
256+ ///
257+ /// The body of the closure executes synchronously on the calling task, and once it returns
258+ /// the calling task is suspended. It is possible to immediately resume the task, or escape the
259+ /// continuation in order to complete it afterwards, which will them resume suspended task.
260+ ///
261+ /// You must invoke the continuation's `resume` method exactly once.
262+ ///
263+ /// Missing to invoke it (eventually) will cause the calling task to remain suspended
264+ /// indefinitely which will result in the task "hanging" as well as being leaked with
265+ /// no possibility to destroy it.
266+ ///
267+ /// The checked continuation offers detection of mis-use, and dropping the last reference
268+ /// to it, without having resumed it will trigger a warning. Resuming a continuation twice
269+ /// is also diagnosed and will cause a crash.
257270///
258271/// - Parameters:
259272/// - function: A string identifying the declaration that is the notional
260273/// source for the continuation, used to identify the continuation in
261274/// runtime diagnostics related to misuse of this continuation.
262275/// - body: A closure that takes a `CheckedContinuation` parameter.
263- /// You must resume the continuation exactly once.
276+ /// - Returns: The value continuation is resumed with.
277+ ///
278+ /// - SeeAlso: `withCheckedThrowingContinuation(function:_:)`
279+ /// - SeeAlso: `withUnsafeContinuation(function:_:)`
280+ /// - SeeAlso: `withUnsafeThrowingContinuation(function:_:)`
264281@available ( SwiftStdlib 5 . 1 , * )
265282@_unsafeInheritExecutor // ABI compatibility with Swift 5.1
266283@inlinable
@@ -273,18 +290,34 @@ public func withCheckedContinuation<T>(
273290 }
274291}
275292
276- /// Suspends the current task,
277- /// then calls the given closure with a checked throwing continuation for the current task.
293+ /// Invokes the passed in closure with a checked continuation for the current task.
294+ ///
295+ /// The body of the closure executes synchronously on the calling task, and once it returns
296+ /// the calling task is suspended. It is possible to immediately resume the task, or escape the
297+ /// continuation in order to complete it afterwards, which will them resume suspended task.
298+ ///
299+ /// If `resume(throwing:)` is called on the continuation, this function throws that error.
300+ ///
301+ /// You must invoke the continuation's `resume` method exactly once.
302+ ///
303+ /// Missing to invoke it (eventually) will cause the calling task to remain suspended
304+ /// indefinitely which will result in the task "hanging" as well as being leaked with
305+ /// no possibility to destroy it.
306+ ///
307+ /// The checked continuation offers detection of mis-use, and dropping the last reference
308+ /// to it, without having resumed it will trigger a warning. Resuming a continuation twice
309+ /// is also diagnosed and will cause a crash.
278310///
279311/// - Parameters:
280312/// - function: A string identifying the declaration that is the notional
281313/// source for the continuation, used to identify the continuation in
282314/// runtime diagnostics related to misuse of this continuation.
283315/// - body: A closure that takes a `CheckedContinuation` parameter.
284- /// You must resume the continuation exactly once .
316+ /// - Returns: The value continuation is resumed with .
285317///
286- /// If `resume(throwing:)` is called on the continuation,
287- /// this function throws that error.
318+ /// - SeeAlso: `withCheckedContinuation(function:_:)`
319+ /// - SeeAlso: `withUnsafeContinuation(function:_:)`
320+ /// - SeeAlso: `withUnsafeThrowingContinuation(function:_:)`
288321@available ( SwiftStdlib 5 . 1 , * )
289322@_unsafeInheritExecutor // ABI compatibility with Swift 5.1
290323@inlinable
0 commit comments