This is the mail archive of the cygwin@cygwin.com 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]

Strange fork() behaviour under cygwin v1.3.1



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


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