This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Strange pthread_atfork() behavior


Please CC my as I am not subscribed.

Just notice a difference between Linux and cygwin, hope
someone will be able to figure it out.

When running this program on Linux I get expected behavior.

When running under cygwin the exec program runs after about 60 seconds.
The following is the output:

before sleep
after sleep
<parent is not running anymore>
<wait about 60 seconds>
      56 [main] a 2952 sig_send: wait for sig_complete event failed, signal -34, rc 258, Win32 error 0 at child
<child output>

Any clue?

Alon Bar-Lev.


#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

static void __atfork_prepare  (void) {printf ("__atfork_prepare\n");}
static void __atfork_parent (void) {printf ("__atfork_parent\n");}
static void __atfork_child (void) {printf ("__atfork_child\n");}

int main (void) {
	pthread_atfork (__atfork_prepare, __atfork_parent, __atfork_child);

	if (fork () == 0) {
		printf ("at child\n");
		execl ("/bin/ls", "/bin/ls", NULL);

	printf ("before sleep\n");
	sleep (10);
	printf ("after sleep\n");

Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]