[Openais] Thread model of openais?

Hans Feldt (AS/EAB) hans.feldt at ericsson.com
Tue Nov 21 12:24:08 PST 2006


Thanks for the explanation,

So the code in a service is executed by exactly three threads, IPC
request, main and totem?

These threads run at different priorities but are synchronised by a
mutex before entering the code of a service?

Regards,
Hans

> -----Original Message-----
> From: Steven Dake [mailto:sdake at redhat.com] 
> Sent: den 21 november 2006 16:52
> To: Hans Feldt (AS/EAB)
> Cc: openais at lists.osdl.org
> Subject: Re: [Openais] Thread model of openais?
> 
> On Mon, 2006-11-20 at 15:50 +0100, Hans Feldt wrote:
> > Steven, could you please explain how posix threads are used 
> within openais?
> > 
> 
> Hans,
> 
> It depends what components you are talking about.
> 
> If you mean the libraries, the libraries are entirely thread 
> safe.  They use a mutex to protect the handle database as 
> part of the handle database get and put reference accessors.  
> The library also should protect reads and write operations 
> from concurrent operation by using a pthread mutex.  If they 
> don't, they are broken.
> 
> If you mean the executive, threads are used as follows:
> In a multi-cored CPU and with encryption enabled, threads can 
> be used to improve performance by encrypting each packet on a 
> separate processor.
> 
> The logger uses a thread to avoid blocking in syslog calls 
> for any significant period of time.  The logger flushes this 
> thread at segv, or at application exit.
> 
> Each IPC connection has two separate threads.  Their purpose 
> is to handle IO in each direction.  One thread is input to 
> the executive (called the request thread), the other thread 
> is output from the executive (called the dispatch thread).  
> The purpose of these threads long term is to avoid priority 
> inversions by ensuring that each library that connects has 
> its priority read, and then the IPC thread's priority is set 
> to that of the connecting thread for realtime behavior.
> 
> The timer system has a thread which dispatches timer callbacks.
> 
> And finally the main thread of execution in which the totem 
> protocol is operated.
> 
> Hope that helps.
> 
> > Regards,
> > Hans
> > _______________________________________________
> > Openais mailing list
> > Openais at lists.osdl.org
> > https://lists.osdl.org/mailman/listinfo/openais
> 
> 




More information about the Openais mailing list