Required Instance Methodswift 6.0.1_Concurrency
isSameExclusiveExecutionContext(other:)
If this executor has complex equality semantics, and the runtime needs to compare two executors, it will first attempt the usual pointer-based equality / check, / and if it fails it will compare the types of both executors, if they are the same, / it will finally invoke this method, in an attempt to let the executor itself decide / if this and the other
executor represent the same serial, exclusive, isolation context.
- iOS
- 17.0+
- macOS
- 14.0+
- tvOS
- 17.0+
- watchOS
- 10.0+
func isSameExclusiveExecutionContext(other: Self) -> Bool
Parameters
- other
the executor to compare with.
Returns
true
, if self
and the other
executor actually are mutually exclusive and it is safe–from a concurrency perspective–to execute code assuming one on the other.
This method must be implemented with great care, as wrongly returning true
would allow / code from a different execution context (e.g. thread) to execute code which was intended to be isolated by another actor.
This check is not used when performing executor switching.
This check is used when performing Actor/assertIsolated()
, Actor/preconditionIsolated()
, Actor/assumeIsolated()
and similar APIs which assert about the same “exclusive serial execution context”.
Other requirements
Instance members
func asUnownedSerialExecutor(
) -> UnownedSerialExecutor Convert this executor value to the optimized form of borrowed executor references.
func checkIsolated(
) Last resort “fallback” isolation check, called when the concurrency runtime is comparing executors e.g. during
assumeIsolated()
and is unable to prove serial equivalence between the expected (this object), and the current executor.func enqueue(consuming ExecutorJob
)