[reSIProcate] Threading and polling loops
Dennis Dupont
ddupont at intelemedia.com
Thu Mar 24 17:08:02 CST 2005
Hi all
I have been working with the stack for a short time and I am trying to
determine the most efficient way to use the stack in a multithreaded
environment. I understand I can attach Transports that run as
independent threads. The interface between the stack and transports for
passing events is the Fifo. This looks clean except for one concern:
both the Transport and the stack require polling loops. The Transport
does it explicitly in thread() with a 100 millisec poll time. The stack
is polled at whatever rate the application decides, but using the same
FdSet::selectMilliSeconds() call.
I would prefer to use a completely event driven system. Is there any way
in the existing codebase to have a pair of transport threads? One that
reads using select to get IO ready events and a second that transmits
and blocks on the FIFO? In a similar train of thought, I would like to
be able to run the stack in a thread that blocks on the state machine
FIFO (which would presumably get filled from not only the read-mode
transport thread, but also from other application threads.
Any thoughts? I am not suggesting redesign here, just wondering if I
have missed some ways to do what I am attempting.
Dennis Dupont
Senior Systems Architect
Intelemedia Communications, Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20050324/4b8c3f6e/attachment.htm>
More information about the resiprocate-devel
mailing list