mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-07 02:18:15 +00:00
Merged revisions 152877 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r152877 | russell | 2008-10-30 14:21:53 -0500 (Thu, 30 Oct 2008) | 9 lines Modify the documentation of the sip_registry struct - Remove a comment that says that the monitor thread is the only one that ever touches these objects. This is no longer the case with TCP. Also, I would eventually like to get the scheduler in its own thread, so this is just a poor assumption to make. - Note that reference counting of these objects with respect to scheduler entries is not complete. There are some leaked references when deleting scheduler entries. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@152878 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1559,7 +1559,9 @@ struct sip_peer {
|
||||
};
|
||||
|
||||
|
||||
/*! \brief Registrations with other SIP proxies
|
||||
/*!
|
||||
* \brief Registrations with other SIP proxies
|
||||
*
|
||||
* Created by sip_register(), the entry is linked in the 'regl' list,
|
||||
* and never deleted (other than at 'sip reload' or module unload times).
|
||||
* The entry always has a pending timeout, either waiting for an ACK to
|
||||
@@ -1568,11 +1570,12 @@ struct sip_peer {
|
||||
* or once the previously completed registration one expires).
|
||||
* The registration can be in one of many states, though at the moment
|
||||
* the handling is a bit mixed.
|
||||
* Note that the entire evolution of sip_registry (transmissions,
|
||||
* incoming packets and timeouts) is driven by one single thread,
|
||||
* do_monitor(), so there is almost no synchronization issue.
|
||||
* The only exception is the sip_pvt creation/lookup,
|
||||
* as the dialoglist is also manipulated by other threads.
|
||||
*
|
||||
* XXX \todo Reference count handling for this object has some problems with
|
||||
* respect to scheduler entries. The ref count is handled in some places,
|
||||
* but not all of them. There are some places where references get leaked
|
||||
* when this scheduler entry gets cancelled. At worst, this would cause
|
||||
* memory leaks on reloads if registrations get removed from configuration.
|
||||
*/
|
||||
struct sip_registry {
|
||||
ASTOBJ_COMPONENTS_FULL(struct sip_registry,1,1);
|
||||
@@ -4571,7 +4574,6 @@ static void sip_registry_destroy(struct sip_registry *reg)
|
||||
ast_atomic_fetchadd_int(®objs, -1);
|
||||
ast_dnsmgr_release(reg->dnsmgr);
|
||||
ast_free(reg);
|
||||
|
||||
}
|
||||
|
||||
/*! \brief Execute destruction of SIP dialog structure, release memory */
|
||||
|
||||
Reference in New Issue
Block a user