Browse Subversion Repository
Diff of /trunk/teraterm/teraterm/filesys_log.cpp
Parent Directory
| Revision Log
| Patch
| 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 |
|
|
| |