XCode 16.3 日本語化計画
現在のタスクがこのアクターの連続的実行者上で実行中であると想定し、そうでない場合はプログラムの実行を停止します。
nonisolated func assumeIsolated<T>( _ operation: (isolated Self) throws -> T, file: StaticString = #fileID, line: UInt = #line ) rethrows -> T where T : Sendable
operation
現在のコンテキストがアクターの連続的実行者上で実行されている場合に実行される操作。
file
assertion が失敗した場合に出力するファイル名。デフォルトは、このメソッドが呼び出された場所です。
line
assertion が失敗した場合に出力する行番号。デフォルトは、このメソッドが呼び出された場所です。
operation の戻り値
このメソッドを呼び出すことで、現在実行中の同期関数が実際にこのアクターの連続的実行者上で実行されていると 想定し、検証する ことができます。
その場合、操作はアクターの isolated (分離された) バージョンで呼び出され、非同期境界を経由することなく、アクターのローカル状態への同期アクセスが可能になります。
現在のコンテキストがアクターの連続的実行者上で実行されていない場合、またはアクターがリモートアクターへの参照である場合、このメソッドは致命的なエラーでクラッシュします (preconditionIsolated() と同様に)。
このチェックは渡されたアクターの連続的実行者に対して実行されることに注意してください。つまり、別のアクターが同じ連続的実行者を使用する場合 (そのアクターの unownedExecutor を自身の unownedExecutor として使用することにより)、同時実行の安全性の観点から連続的実行者はこれら 2 つのアクターの相互排他を保証するため、このチェックは成功します。
このメソッドは同期関数からのみ使用できます。非同期関数は代わりにアクターに通常のメソッド呼び出しを実行し、必要に応じてタスク実行をターゲットアクターからホップする (飛び越す) 必要があります。