This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]