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/

Reply via email to