astobj2-ify the SLA code
authorRussell Bryant <russell@russellbryant.com>
Wed, 10 Jul 2013 01:56:15 +0000 (01:56 +0000)
committerRussell Bryant <russell@russellbryant.com>
Wed, 10 Jul 2013 01:56:15 +0000 (01:56 +0000)
commit0bfe2d4cc4dda5a4bcde039614336c104a88f8d3
tree2a0f0f41cd9ea6ac57d2f601aad02d59bdbdaf8a
parent3355bb2fa5dd352a61a11aee14c84ea144f25756
astobj2-ify the SLA code

The SLA code within app_meetme was written before asotbj2 had been
merged into Asterisk.  Worse, support for reloads did not exist at first
and was added later as a bolt-on feature.  I knew at the time that
reloading was not safe at all while SLA was in use, so the reload would
be queued up to execute when the system was idle.  Unfortunately, this
approach was still prone to errors beyond the fact that this was the
only place in Asterisk where configuration was not reloaded
instantly when requested.

This patch converts various SLA objects to be reference counted objects
using astobj2.  This allows reloads to be processed while the system is
in use.  The code ensures that the objects will not disappear while one
of the other threads is using them.  However, they will be immediately
removed from the global trunk and station containers so no new calls
will use them if removed from configuration.

Review: https://reviewboard.asterisk.org/r/2581/
........

Merged revisions 393928 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 393929 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393930 65c4cc65-6c06-0410-ace0-fbb531ad65f3
apps/app_meetme.c
configs/sla.conf.sample