This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: 1.3.13?
On Mon, Aug 05, 2002 at 10:56:55AM -0400, Christopher Faylor wrote:
>On Mon, Aug 05, 2002 at 02:06:59PM +0400, egor duda wrote:
>>Yes. I have a problem with new thread-pool stuff. When runnint cvs
>>session via ssh i get following strace:
>
>Actually, I should have mentioned that I still need to complete the
>cygthread stuff.
>
>If I can duplicate the problem, I'll take a look at it. I should note
>that adding a debug_printf in the ResumeThread loop is apt to slow
>things down *quite* a bit, though.
I can't duplicate the problem but I have detected a race in my code.
The below should reduce the window of the race but not eliminate it.
Does it make any difference to the observed behavior?
cgf
Index: cygthread.cc
===================================================================
RCS file: /cvs/uberbaum/winsup/cygwin/cygthread.cc,v
retrieving revision 1.3
diff -u -p -r1.3 cygthread.cc
--- cygthread.cc 2 Aug 2002 02:10:24 -0000 1.3
+++ cygthread.cc 5 Aug 2002 15:38:25 -0000
@@ -7,10 +7,10 @@ Cygwin license. Please consult the file
details. */
#include "winsup.h"
+#include <windows.h>
#include "exceptions.h"
#include "security.h"
#include "cygthread.h"
-#include <windows.h>
#undef CloseHandle
@@ -45,7 +45,8 @@ cygthread::stub (VOID *arg)
info->__name = NULL;
SetEvent (info->ev);
- SuspendThread (info->h);
+ SuspendThread (GetCurrentThreadId ());
+ (void) WaitForSingleObject (info->ev, 0);
}
}
@@ -86,7 +87,7 @@ void * cygthread::operator
new (size_t)
{
DWORD id;
- cygthread *info; /* Various information needed by the newly created thread */
+ cygthread *info;
for (;;)
{