Core Library0.xAPI Reference

Choose documentation 3

latest

Current version

latest
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

method libtmux-swift latest

ControlSession.assumeIsolated(_:file:line:)

Assume that the current task is executing on this actor's serial executor, or stop program execution otherwise.

Source and package
Qualified name
ControlSession.assumeIsolated(_:file:line:)
Declared in
ControlSession
Package
libtmux-swift
assumeIsolated( operation: (isolated Self) throws -> T, file: StaticString, line: UInt ) -> T

Inherited from Actor.assumeIsolated(_:file:line:)

Description#

You call this method to assume and verify that the currently executing synchronous function is actually executing on the serial executor of this actor.

If that is the case, the operation is invoked with an isolated version of the actor, allowing synchronous access to actor local state without hopping through asynchronous boundaries.

If the current context is not running on the actor's serial executor, or if the actor is a reference to a remote actor, this method will crash with a fatal error (similar to preconditionIsolated()).

Note that this check is performed against the passed in actor's serial executor, meaning that if another actor uses the same serial executor--by using that actor's Actor/unownedExecutor as its own Actor/unownedExecutor--this check will succeed, as from a concurrency safety perspective, the serial executor guarantees mutual exclusion of those two actors.

This method can only be used from synchronous functions, as asynchronous functions should instead perform a normal method call to the actor, which will hop task execution to the target actor if necessary.

  • Note: This check is performed against the actor's serial executor, meaning that / if another actor uses the same serial executor--by using another actor's executor as its own Actor/unownedExecutor --this check will succeed , as from a concurrency safety perspective, the serial executor guarantees mutual exclusion of those two actors.
  • Parameters:
    • operation: the operation that will be executed if the current context is executing on the actors serial executor.
    • file: The file name to print if the assertion fails. The default is where this method was called.
    • line: The line number to print if the assertion fails The default is where this method was called.
  • Returns: the return value of the operation
  • Throws: rethrows the Error thrown by the operation if it threw
Type parameters
Parameters
Raises
  • any Error – Conditionally propagates errors (rethrows).

Esc

Type to search.

Reference previewOpen reference