--- 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/

Reply via email to