Move taskprocessors to use a listener model.
authorMark Michelson <mmichelson@digium.com>
Thu, 8 Nov 2012 23:27:16 +0000 (23:27 +0000)
committerMark Michelson <mmichelson@digium.com>
Thu, 8 Nov 2012 23:27:16 +0000 (23:27 +0000)
commit77725bf293f470b6697b94472eafb457be83ef14
treed92a1a0f57d203184616bce268c83ee470b45d78
parent7c6c20bfc642345f7d2276f1fa89fff4fe90edaf
Move taskprocessors to use a listener model.

Taskprocessors are now divided into two units: the task queue
and their listeners.

When a task is added to the queue, the listener is notified and
can take whatever action is desired. This means that taskprocessors
are no longer confined to having their tasks executed within a
single thread.

A default taskprocessor listener has been added that mirrors the
old taskprocessor behavior.

I've tested it by running Asterisk and placing calls. It appears
to work as expected. I'm going to do some cleaning up first and
then write some unit tests to be sure everything works as expected.

git-svn-id: https://origsvn.digium.com/svn/asterisk/team/mmichelson/threadpool@376118 65c4cc65-6c06-0410-ace0-fbb531ad65f3
include/asterisk/taskprocessor.h
main/taskprocessor.c