This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Cygserver 100% CPU (was: References to both cygwin1.dll and msvcrt.dl
- From: Patrick Samson <p_samson at yahoo dot com>
- To: cygwin at cygwin dot com
- Date: Fri, 1 Oct 2004 00:13:19 -0700 (PDT)
- Subject: Re: Cygserver 100% CPU (was: References to both cygwin1.dll and msvcrt.dl
--- 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/