diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-31 02:22:05 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-31 02:22:05 +0300 |
commit | afe644994d365883bb683cdaf79e383259632d6e (patch) | |
tree | f4cab816e85dba7dfe9ad9417e3b79b366c7a5c7 /gpg_wrapper.cpp | |
parent | c5cc46ceb67eb92ebf1ca1094e48d5938d5f7d1a (diff) |
more or less thread save code
Diffstat (limited to 'gpg_wrapper.cpp')
-rw-r--r-- | gpg_wrapper.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gpg_wrapper.cpp b/gpg_wrapper.cpp index db7d134..1907ed1 100644 --- a/gpg_wrapper.cpp +++ b/gpg_wrapper.cpp @@ -18,9 +18,12 @@ //thx gpg module from Harald Treder, Zakhar V. Bardymov +HANDLE gpg_mutex = NULL; + pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD aexitcode, pxResult *result) { + WaitForSingleObject(gpg_mutex, INFINITE); extern logtofile debuglog; BOOL success; STARTUPINFO sinfo = {0}; @@ -89,6 +92,7 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD debuglog<<"in: "<<commandline<<"\n"; + gpg_mutex = CreateMutex(NULL, FALSE, NULL); setlocale( LC_ALL, "C" ); success = CreateProcess(NULL, (TCHAR*)commandline.c_str(), NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &sinfo, &pri); @@ -119,6 +123,7 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD inputpos+=transfered; Sleep(200); } + CloseHandle(gpg_mutex); storeOutput(readstdout,aoutput); |