Mail Archives: cygwin-developers/2000/09/15/11:31:39
Cygwin does not have "restartable" I/O. That means that reads on
"slow" devices like pipes or ttys will be interrupted by a signal.
cgf
On Fri, Sep 15, 2000 at 04:58:22PM +0400, Egor Duda wrote:
>Hi!
>
> this program:
>
>===================================================================
>#include <errno.h>
>#include <stdio.h>
>#include <signal.h>
>
>int main ( int argc, char** argv )
>{
> char buf[10];
> int pid;
> int a[2];
> int rc;
>
> pipe ( a );
> pid = fork ();
> if ( pid == 0 )
> {
> rc = read ( a[0], buf, 1 );
> if ( rc < 0 ) perror ( "error reading from pipe" );
> }
> else
> {
> kill ( pid, SIGSTOP );
> sleep(1);
> kill ( pid, SIGCONT );
> sleep(1);
> write ( a[1], buf, 1 );
> waitpid ( pid );
> }
>}
>===================================================================
>
>prints `error reading from pipe: Interrupted system call' on cygwin
>and none on linux. is it intended behavior, or cygwin shouldn't post
>"signal_arrived" event on SIGCONT signal?
>
>Egor. mailto:deo AT logos-m DOT ru ICQ 5165414 FidoNet 2:5020/496.19
>
--
cgf AT cygnus DOT com Cygnus Solutions, a Red Hat company
http://sourceware.cygnus.com/ http://www.redhat.com/
- Raw text -