svnno****@sourc*****
svnno****@sourc*****
2013年 9月 30日 (月) 18:47:11 JST
Revision: 5395 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5395 Author: yutakapon Date: 2013-09-30 18:47:11 +0900 (Mon, 30 Sep 2013) Log Message: ----------- チケット #32144 ログ採取開始時の現在バッファをあらかじめ含める コードのブラッシュアップ。 最初の書き出し先がネットワーク経由だと、書き出し処理で時間がかかってしまうことが 予想されるため、遅延書き込みのしくみを取り入れてみたが、むしろ余計にスローダウンと なってしまった。 バッファの内容を cv.LogBuf に格納してから、LogToFile()を呼ぶことも考えたが、 サーバから受信していないも関わらず、受信バイト数がカウントアップするのがいまいちなのと、 cv.LogBufのサイズが 1KB しかないので、バッファが1KBを超えているときの処理が複雑に なるため、とりあえず現状のままとする。 Ticket Links: ------------ http://sourceforge.jp/projects/ttssh2/tracker/detail/32144 Modified Paths: -------------- trunk/teraterm/teraterm/filesys.cpp -------------- next part -------------- Modified: trunk/teraterm/teraterm/filesys.cpp =================================================================== --- trunk/teraterm/teraterm/filesys.cpp 2013-09-29 16:00:21 UTC (rev 5394) +++ trunk/teraterm/teraterm/filesys.cpp 2013-09-30 09:47:11 UTC (rev 5395) @@ -442,6 +442,8 @@ unsigned tid; DWORD ofs, size, written_size; char buf[512]; + const char *crlf = "\r\n"; + DWORD crlf_len = 2; if ((FileLog) || (BinLog)) return FALSE; @@ -641,11 +643,26 @@ // (2013.9.29 yutaka) if (ts.LogAllBuffIncludedInFirst) { for (ofs = 0 ; ; ofs++ ) { + // 1\x82̍s\x82\xF0\x8E擾\x82\xB7\x82\xE9\x81B\x95\xB6\x8E\x9A\x82\xBE\x82\xAF\x82Ȃ̂ŁA\x83G\x83X\x83P\x81[\x83v\x83V\x81[\x83P\x83\x93\x83X\x82͊܂܂\xEA\x82Ȃ\xA2\x81B size = BuffGetAnyLineData(ofs, buf, sizeof(buf)); if (size == -1) break; - WriteFile((HANDLE)LogVar->FileHandle, buf, size, &written_size, NULL); - WriteFile((HANDLE)LogVar->FileHandle, "\r\n", 2, &written_size, NULL); + +#if 0 + if (ts.DeferredLogWriteMode) { // \x92x\x89\x84\x8F\x91\x82\xAB\x8D\x9E\x82\xDD + char *pbuf = (char *)malloc(size + 2); + memcpy(pbuf, buf, size); + pbuf[size] = '\r'; + pbuf[size+1] = '\n'; + Sleep(1); // \x83X\x83\x8C\x83b\x83h\x83L\x83\x85\x81[\x82\xAA\x8D\xEC\x82\xE7\x82\xEA\x82\xE9\x82悤\x82ɁA\x83R\x83\x93\x83e\x83L\x83X\x83g\x83X\x83C\x83b\x83`\x82𑣂\xB7\x81B + PostThreadMessage(LogVar->LogThreadId, WM_DPC_LOGTHREAD_SEND, (WPARAM)pbuf, size + 2); + } else { // \x92\xBC\x8F\x91\x82\xAB\x81B\x83l\x83b\x83g\x83\x8F\x81[\x83N\x8Co\x97R\x82\xBE\x82ƒx\x82\xA2\x81B +#endif + WriteFile((HANDLE)LogVar->FileHandle, buf, size, &written_size, NULL); + WriteFile((HANDLE)LogVar->FileHandle, crlf, crlf_len, &written_size, NULL); +#if 0 + } +#endif } }