Strange fork() behaviour under cygwin v1.3.1

Andrew de Quincey andrew@orbital.co.uk
Mon May 21 16:14:00 GMT 2001


Hi, I've been playing with the jabber server under win32... and I've run
into a slight problem. The following program illustrates it:

+++++++++++++++++++++++++++++++++++++++++++++++++
#include <pth.h>
#include <stdio.h>

void *test(void *arg);

int main(int argc, char* argv[]) {
  int pid;
  pth_init();

  pth_join(pth_spawn(PTH_ATTR_DEFAULT, test, NULL), NULL);
}

void *test(void *arg) {
  int pid;

  pid = fork();
  if (pid < 0) {
    printf("FORKFAILED\n");
  } else if (pid == 0) {
    printf("FORKCHILD\n");
  } else {
    printf("FORKPARENT\n");
  }
}
+++++++++++++++++++++++++++++++++++++++++++++++++

This outputs the following when run:
      0 [main] a 1760 sync_with_child: child 1524(0x23C) died before
initialization with status code 0x1
   2496 [main] a 1760 sync_with_child: *** child state waiting for longjmp
FORKFAILED


Is this a known problem, not being able to fork() once you are inside a
spawned thread? Or, is this a bug I have run across...?

BTW: I'm using cygwin dll 1.3.1, pth 1.4.0, and win2k SP1



--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list