Hi, I don't get SIGPOLL on Cygwin in a software that runs fine on Linux and Solaris. Is there a known issue concerning SIGPOLL and named pipes.
The setup code looks like this: Input = open(optarg,O_RDONLY); if (Input == -1) error("could not open input file %s: %s\n",optarg,strerror(errno)); dbug("opening input script %s\n",optarg); ret = fstat(Input, &st); assert(ret != -1); if (S_ISFIFO(st.st_mode)) { dbug("input script is a named pipe\n"); sig.sa_handler = processSignal; sigemptyset(&sig.sa_mask); sigaddset(&sig.sa_mask,SIGPOLL); sig.sa_flags = SA_RESTART; ret = sigaction(SIGPOLL,&sig,0); assert(ret == 0); ret = fcntl(Input,F_SETFL,O_RDONLY|O_NONBLOCK | FASYNC ); assert(ret == 0); InFlags = fcntl(Input,F_GETFL); Script = optarg; } Additionally, there seem to be a bug in Cygwin concerning the concatenation of data written to a named pipe. If I open the named pipe a second time with O_WRONLY, to make sure that there is always one valid open input to the named pipe, the data written to the pipe from different processes doesn't get concatenated and I have to close and reopen the named pipe. This is in contrast to the behavior in Linux and Solaris, and POSIX semantics. Any ideas or pointers? TIA, Thomas -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/