proc_waiter: error on read of child wait pipe 0x0, Win32 error 6
Takashi Yano
takashi.yano@nifty.ne.jp
Thu Jan 13 23:52:27 GMT 2022
On Wed, 12 Jan 2022 07:41:41 +0100
Marco Atzeri wrote:
> On 12.01.2022 07:27, Jay K wrote:
> > Ok, here is a small demonstration of the problem.
> >
> > #include <stdlib.h>
> > #include <stdio.h>
> > #include <windows.h>
> >
> > unsigned __stdcall thread(void* p)
> > {
> > unsigned i;
> > for (i = 0; i < 100; ++i)
> > system("./a.exe");
> > return 0;
> > }
> >
> > int main()
> > {
> > unsigned i;
> > HANDLE threads[100] = {0};
> > FILE* f = fopen("a.c", "w");
> > fprintf(f, "int main() { return 0; }\n");
> > fclose(f);
>
>
> so you are mixing Cygwin and Windows calls ?
> That is looking for trouble.
>
> Or it is a tentative to produce a test case ?
I found that the same happens even with pthread rather than
win32 thread functions.
#include <stdlib.h>
#include <pthread.h>
void *thread(void *p)
{
system("true");
return NULL;
}
int main()
{
int i;
pthread_t threads[2];
for (i = 0; i < 2; i++)
pthread_create(&threads[i], NULL, thread, NULL);
for (i = 0; i < 2; i++)
pthread_join(threads[i], NULL);
return 0;
}
Executing above code results in hang with message:
0 [waitproc] a 786 proc_waiter: error on read of child wait pipe 0x0, Win32 error 6
--
Takashi Yano <takashi.yano@nifty.ne.jp>
More information about the Cygwin
mailing list