Less is More (Threading)

Alessandro Ren alessandro.ren at opservices.com.br
Thu Aug 20 16:02:17 CEST 2009



On 8/20/2009 5:57 AM, Andreas Ericsson wrote:
> Steven D. Morrey wrote:
>    
>> So I've implemented multi-threading in the main event loop to force
>> high priority events to no longer block the main thread. It turned
>> out to be brain dead simple to implement. That has me a bit worried
>> actually.
>>
>> After going through the source line by line, I see no place where
>> event_list_low and event_list_high could stomp on eachother, ergo no
>> need for mutexes, semaphores etc, anywhere that I was able to find.
>>
>> The fix I followed was simply to cut the event list high code out and
>> paste it into it's own function then perform a pthread_create right
>> before we enter the main event loop. So now we have 2 threads where
>> once there was only one. This appears to be working well, and my
>> latencies are dropping quickly.
>>
>> If it continues to drop and tends to stay that way I'll get a patch
>> up, but in the meantime, is there any place those 2 threads could
>> take eachothers cookies so to speak?
>>
>>      
> It can potentially result in passive checks for a failing service
> being parsed before a host check is executed, leading to a service
> notification being sent out even if the host is actually down.
>
> Though come to think of it, that could've happened before too, so
> it shouldn't be much of an issue.
>    

     Yep, this happens in the current code sometimes.

> I'd be very interested in seeing the patch though.
>
>    

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july




More information about the Developers mailing list