• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

FFFTPのソースコードです。


Commit MetaInfo

Revision236ce16cddb01af25b40e9092faa1fec72671604 (tree)
Time2011-11-23 23:12:31
Authors_kawamoto <s_kawamoto@user...>
Commiters_kawamoto

Log Message

Remove limits for multi CPUs.

Change Summary

Incremental Difference

Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
--- a/common.h
+++ b/common.h
@@ -1266,6 +1266,8 @@ int AskAutoExit(void);
12661266 BOOL __stdcall SSLTimeoutCallback(BOOL* pbAborted);
12671267 BOOL __stdcall SSLConfirmCallback(BOOL* pbAborted, BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName);
12681268 BOOL LoadSSLRootCAFile();
1269+// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策
1270+BOOL IsMainThread();
12691271
12701272 /*===== filelist.c =====*/
12711273
--- a/config.h
+++ b/config.h
@@ -10,7 +10,7 @@
1010 // プロセスをDLL Injectionから保護する
1111 #include "protectprocess.h"
1212 // 使用するCPUを1個に限定する(マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策)
13-#define DISABLE_MULTI_CPUS
13+//#define DISABLE_MULTI_CPUS
1414 // ファイル転送用のネットワークバッファを無効にする(通信中止後にリモートのディレクトリが表示されないバグ対策)
1515 //#define DISABLE_TRANSFER_NETWORK_BUFFERS
1616 // コントロール用のネットワークバッファを無効にする(フリーズ対策)
--- a/main.c
+++ b/main.c
@@ -132,6 +132,8 @@ static DWORD dwCookie;
132132
133133 // 暗号化通信対応
134134 static char SSLRootCAFilePath[FMAX_PATH+1];
135+// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策
136+static DWORD MainThreadId;
135137
136138
137139 /*===== グローバルなワーク =====*/
@@ -313,9 +315,11 @@ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLi
313315 InitializeLoadLibraryHook();
314316 #endif
315317
318+ // マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策
316319 #ifdef DISABLE_MULTI_CPUS
317320 SetProcessAffinityMask(GetCurrentProcess(), 1);
318321 #endif
322+ MainThreadId = GetCurrentThreadId();
319323
320324 // yutaka
321325 if(OleInitialize(NULL) != S_OK){
@@ -2831,7 +2835,9 @@ int BackgrndMessageProc(void)
28312835 Ret = NO;
28322836 while(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE))
28332837 {
2834- if(!HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))
2838+ // マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策
2839+// if(!HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))
2840+ if(!IsMainThread() || !HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))
28352841 {
28362842 /* ディレクトリ名の表示コンボボックスでBSやRETが効くように */
28372843 /* コンボボックス内ではアクセラレータを無効にする */
@@ -3027,3 +3033,10 @@ BOOL LoadSSLRootCAFile()
30273033 return bResult;
30283034 }
30293035
3036+// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策
3037+BOOL IsMainThread()
3038+{
3039+ if(GetCurrentThreadId() != MainThreadId)
3040+ return FALSE;
3041+ return TRUE;
3042+}
\ No newline at end of file
Binary files a/putty/Release/PuTTY.dll and b/putty/Release/PuTTY.dll differ