トップ | バージョン2 最新版 | バージョン3 β版

チケット #1654 (closed 不具合: 対応済) — at バージョン 3

登録: 3 年

最終更新: 3 年

保存時等に虹色カーソルになり、数十秒フリーズすることがある?

報告者: daisuke 担当者: daisuke
優先度: 普通 マイルストーン: 3.6.3
コンポーネント: アプリケーション バージョン:
キーワード: 関係者:

説明 (最終更新者: daisuke) (diff)

再現条件不明
→他アプリと同じファイルを開き、他アプリで保存した場合に発生。
0.2s間隔で保存を行うテストアプリを作成して、再現。数分程度で再現する。(バージョン3.6.2)

対策メモ
<原因>
下記の条件を満たす場合に問題発生する。
・presentedItemDidChangeの中で当該ファイルのreadを行っている。
・そのreadのfile coordinatorのoptionにNSFileCoordinatorReadingWithoutChangesフラグはつけていない。
→おそらくfile coordinatorが他プロセスのsavePresentedItemChangesWithCompletionHandlerを呼ぶ処理と、presentedItemDidChangeのリターンがOS内でデッドロックを起こしている。必ずしも問題発生しない(1/300程度の確率)ので、おそらくタイミングイシュー。
Appleドキュメントに特に記述は見つけられなかった。OS不具合の可能性あり?
<対策>
・presentedItemDidChangeの中で直接readせず、内部イベントキューにイベントを積む。
・file coordinatorのread処理にNSFileCoordinatorReadingWithoutChangesを付ける。

チケットの履歴

更新者: daisuke (3 年 前)

  • 説明 が変更されました (diff)

更新者: daisuke (3 年 前)

  • ステータスnew から closed に変更されました。
  • 解決方法対応済 に設定されました。
  • マイルストーン3.6.3 に設定されました。

更新者: daisuke (3 年 前)

  • 説明 が変更されました (diff)
Note: チケットについてのヘルプは TracTickets を参照 して下さい。