--- Patrick Samson wrote: > With the third condition (pgAdmin) everything was > fine the whole night. And there is only 4 > "good night!" messages in the middle of the night. > I guess this is because of one of the cron tasks > scheduled around 3AM to do maintenance tasks such > as VACUUM, pg_dumpall and a diff between replicated > DBs. These are also 4 "good morning" with error=0. > > Now, when it's wrong, I can see: > good morning (error=4)! > Error 4 is EINTR on the return of msleep(). > Subsequently semop() returns with this EINTR. > > Does it mean that the caller doesn't support > correctly this interrupted call to semop()? > Back to source...
The caller code seems to be: /* * Note: if errStatus is -1 and errno == EINTR then it means we * returned from the operation prematurely because we were sent a * signal. So we try and lock the semaphore again. */ do { errStatus = semop(sema->semId, &sops, 1); } while (errStatus < 0 && errno == EINTR); I don't understand. If semop() returns EINTR (value 4) how can it be detected by the 'while'? __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail -- 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/