Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/filesys_log.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6489 by yutakapon, Fri Sep 23 13:12:44 2016 UTC revision 6493 by yutakapon, Mon Sep 26 12:41:17 2016 UTC
# Line 890  static void LogRotate(void) Line 890  static void LogRotate(void)
890    
891          // 遅延書き込み用スレッドを起こす。          // 遅延書き込み用スレッドを起こす。
892          // (2013.4.19 yutaka)          // (2013.4.19 yutaka)
893            // DeferredLogWriteThread スレッドが起床して、スレッドキューが作成されるより前に、
894            // ログファイルのクローズ(CloseFileSync)が行われると、エンキューが失敗し、デッドロック
895            // するという問題を修正した。
896            // スレッド間の同期を行うため、名前なしイベントオブジェクトを使って、スレッドキューの
897            // 作成まで待ち合わせするようにした。名前付きイベントオブジェクトを使う場合は、
898            // システム(Windows OS)上でユニークな名前にする必要がある。
899            // (2016.9.26 yutaka)
900            LogVar->LogThreadEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
901          LogVar->LogThread = (HANDLE)_beginthreadex(NULL, 0, DeferredLogWriteThread, LogVar, 0, &tid);          LogVar->LogThread = (HANDLE)_beginthreadex(NULL, 0, DeferredLogWriteThread, LogVar, 0, &tid);
902          LogVar->LogThreadId = tid;          LogVar->LogThreadId = tid;
903            if (LogVar->LogThreadEvent != NULL) {
904                    WaitForSingleObject(LogVar->LogThreadEvent, INFINITE);
905                    CloseHandle(LogVar->LogThreadEvent);
906            }
907    
908          logfile_unlock();          logfile_unlock();
909    

Legend:
Removed from v.6489  
changed lines
  Added in v.6493

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26