Open HashidaTKS opened 1 week ago
メッセージループの修正前後に発生の境界があるので、メッセージループの改善が契機。
https://github.com/ThinBridge/Chronos/pull/161
事象再現時の動作を確認すると、メッセージのネストが発生していて
https://github.com/ThinBridge/Chronos/blob/master/MessageLoopWorker.cpp#L110
if (m_bIsActive_)
{
// When CefDoMessageLoopWork() is called there may be various callbacks
// (such as paint and IPC messages) that result in additional calls to this
// method. If re-entrancy is detected we must repost a request again to the
// owner thread to ensure that the discarded call is executed in the future.
m_bReentrancyDetected_ = true;
}
の部分を通るイベントが延々と繰り返されている。 これは、このケースでは
if (m_bReentrancyDetected_)
{
// Execute the remaining work as soon as possible.
PostScheduleMessage(0);
}
でメッセージを送っていて、それが毎回上記の部分を通っているからだと思われる。
5分程度待つと続行されることから、どこかのタイミングで正しく処理を続行するためのメッセージは送られているのではないか。
CEF119のサンプルアプリケーションだと印刷しようとすると最初からシステムダイアログが表示される。 印刷プレビューは表示されない。
Describe the bug
v14.0.119.1以降で発生。
印刷->詳細設定->システムダイアログを使用して印刷
を選択して印刷のシステムダイアログを表示する。 その後、印刷ボタンやキャンセルボタンを押してダイアログを閉じると、Chronosがフリーズして応答がなくなる。 5分ほどすると続行される。
To Reproduce
Describe the bugに記載の通り。
Expected behavior
Chronosがフリーズしない。
Your Environment
Your Configuration
Your TRACE log (Chronos_trace.log)
Additional context
N/A