As a reply to my own thread, after some more googling, it seems that select() ignores SA_RESTART (maybe only when it has a timeout value defined, and does not just block indefinately)....
http://www.ussg.iu.edu/hypermail/linux/kernel/0003.2/0336.html Makes sense why. Also with the semaphore stuff, it seems that's the case as well: "semop is never automatically restarted after being inter rupted by a signal handler, regardless of the setting of the SA_RESTART flags when establishing a signal handler." Wierd that I recall both of them working under Linux, which reaffirmed my previous notions Move along, nothing to see here. :) Robby ----- Original Message ----- From: "Robby Dermody" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Saturday, December 13, 2003 2:55 PM Subject: System calls getting interrupted with signals, even with SA_RESTART > Hey guys, > > I've ran into a little problem. I have been porting an piece of software to > Cygwin. It builds and initially runs fine, but when I get a SIGALRM signal, > which I use for asynchronous timers, a few things return with an EINTR: > > -select() > -IPC semaphores (using CygIPC) > > Note that I am asserting SA_RESTART when I set up the signal handler. The > procedure I take is this: > ----------------- > struct sigaction SigAction; > memset(&SigAction, 0, sizeof(struct sigaction)); > SigAction.sa_handler = Internal_Act_HandleTimers; > SigAction.sa_flags = SA_RESTART; //restart system calls interrupted with > this signal > > if(sigaction(SIGALRM, &SigAction, NULL) < 0) > { > leprintf(LOGGING_SELF, LVL_SYSERR, "Error initing SIGALRM handler"); > return false; > } > siginterrupt(SIGALRM, false); > ---------------- > > The error returned from select is: (errno, strerror(errno) > errno - 4 (Interrupted system call) > (obviously ENTR) > > Obviously the signal handler is set up correctly, and when just asserting > SA_RESTART didn't work, I tried sticking a call to siginterrupt in there as > well, but had no luck there either. > > Is it just a stupid mistake on my end, or something I'm failing to see? The > only other thing that might be the case is that the restarting of select and > the semaphore stuff isn't implemented? > > TIA for ANY help!! > > Robby > --- > Robby Dermody ([EMAIL PROTECTED]) > phase9 industries, inc. - http://www.p9i.com/ > > We confide in our strength, without boasting of it; we respect that of > others, without fearing it. > -Thomas Jefferson > > > > -- > 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/ > > -- 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/