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”.