The following program does not work under cygwin 1.3.2: > #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"); > } > } Cygwin outputs the following message: C:\tmp\tmp\install\bin\test.exe: *** 1. unable to allocate heap 0xA010000, heap_chunk_size 268435456, pid 1568, Win32 error 487 0 [main] test 1516 sync_with_child: child 1568(0xB4) died before initialization with status code 0x1 252 [main] test 1516 sync_with_child: *** child state waiting for longjmp FORKFAILED I have sumbitted this to the cygwin list, but both I and they think it is more something to do with pth's stack manipulation routines when spawning new processes doing things incomptable with cygwin.... I can supply a more detailed analysis of what happens leading up to the problem under cygwin if wanted. ______________________________________________________________________ GNU Portable Threads (Pth) http://www.gnu.org/software/pth/ User Support Mailing List [EMAIL PROTECTED] Automated List Manager (Majordomo) [EMAIL PROTECTED]