Rename most of it to AmEventQueueBase. Remove the integrated mutex and
condition variable.
Add refactored AmEventQueue, which now inherits from AmEventQueueBase
and includes the previously existing mutex and condition variable.
No behavioural or usage difference, other than that now AmEventQueueBase
must be used as base class where previously AmEventQueue was used.
Remove pointless locking in dtor.
Use lock guards where appropriate.
Introduce virtual ::shouldSleep() to determine whether a looping thread
should sleep and wait for an event, or go to process pending events.
Change-Id: Ib90ff47e0c9c279e54f23cd33bf31042fdf08015
to use it, set USE_THREADPOOL in Makefile.defs and configure thread pool
size with session_processor_threads= parameter in sems.conf :
+# compile with session thread pool support?
+# use this for very high concurrent call count
+# applications (e.g. for signaling only)
+# if compiled with thread pool, there will be a
+# thread pool of configurable size processing the
+# signaling and application logic of the calls.
+# if compiled without thread pool support, every
+# session will have its own thread.
+#
+#USE_THREADPOOL = yes
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1782 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- active sessions and other event receivers
get a SystemEvent::ServerShutdown,
default behaviour of AmSession is setStopped()
- session container waits for all sessions to be ended
- signaling server, rtp receiver, media processor, event dispatcher
are stopped and deleted
based on a patch by Rui Jin Zheng rjzheng at boronetworks dot com
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1087 8eb893ce-cfd4-0310-b710-fb5ebe64c474