[前へ] [目次へ] [次へ]
このクラスはセーブロックを制御するためのクラスです。
このクラスのインスタンスが存在する間、セーブシーンの呼び出しが待機されます。
セーブが実行されては困る処理が実行されている間、セーブシーンを呼び出せないようにするために使用します。
セーブロックはこのクラスのインスタンスを生成することでロックされ、
生成されたインスタンスを消滅させることで解放されます。
この実装にはデッドロックに対する保護がありません。
デッドロックを引き起こさないように注意してください。
セーブロックはこのクラスのインスタンスを生成したスレッド単位で管理されます。
セーブロックを行っているスレッドがセーブシーンの呼び出しを行った場合は例外が発生します。
セーブシーンの呼び出しが待機されている状態でこのクラスのインスタンスが生成された場合、
既にセーブロックを行っているスレッドだった場合はそのまま続行され、
セーブロックをしていないスレッドだった場合、セーブシーンの完了まで待機されます。
●継承/注入
このクラスは継承/注入をしていません。
●インターフェイスとインターフェイスメソッド
このクラスはインターフェイスの実装宣言をしていません。
●クラスメソッド
●クラスメンバメソッド
このクラスはクラスメンバメソッドを持っていません。
●クラス共有変数
●インスタンス変数
このクラスはインスタンス変数を持っていません。
SaveLockObject::SyncCallScene
public static void SyncCallScene(editable INativeScene call_scene)
セーブロックの解放を同期した上で指定したシーンを呼び出します。
セーブロックを実行しているスレッドからこのメソッドを呼び出した場合、例外が発生します。
指定するシーンオブジェクトはローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
このメソッドは指定されたシーンオブジェクトのメモリ管理をネイティブ管理に変更します。
指定されたシーンオブジェクトの寿命はシーンの終了までになります。
このメソッドを呼び出したゲームスレッドはシーンが終了するまで停止されるため、
実行が再開された時点で既に指定したシーンオブジェクトは消滅しています。
このメソッドはシーン遷移待機中の場合には使用できません。
editable INativeScene call_scene :呼び出すシーンオブジェクト。
先頭へ
SaveLockObject::save_waiting
readable Bool save_waiting
セーブシーンの呼び出しを待機している間、真になるフラグ。
先頭へ
SaveLockObject::savelock_cs
internal CriticalSection savelock_cs
セーブロック処理を行う際に使用するクリティカルセクション。
先頭へ
SaveLockObject::synccall_cs
internal CriticalSection synccall_cs
セーブシーン呼び出し処理を行う際に使用するクリティカルセクション。
先頭へ
SaveLockObject::locking_threads
internal Array<HThread> locking_threads
セーブロックを行っているスレッドのリスト。
先頭へ
[前へ] [目次へ] [次へ]
最終更新 2023/02/01