[asterisk-commits] russell: branch 1.6.1 r152878 - in /branches/1.6.1: ./ channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Oct 30 14:23:06 CDT 2008
Author: russell
Date: Thu Oct 30 14:23:05 2008
New Revision: 152878
URL: http://svn.digium.com/view/asterisk?view=rev&rev=152878
Log:
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.
........
Modified:
branches/1.6.1/ (props changed)
branches/1.6.1/channels/chan_sip.c
Propchange: branches/1.6.1/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.1/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/branches/1.6.1/channels/chan_sip.c?view=diff&rev=152878&r1=152877&r2=152878
==============================================================================
--- branches/1.6.1/channels/chan_sip.c (original)
+++ branches/1.6.1/channels/chan_sip.c Thu Oct 30 14:23:05 2008
@@ -1559,7 +1559,9 @@
};
-/*! \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 @@
* 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 @@
ast_atomic_fetchadd_int(®objs, -1);
ast_dnsmgr_release(reg->dnsmgr);
ast_free(reg);
-
}
/*! \brief Execute destruction of SIP dialog structure, release memory */
More information about the asterisk-commits
mailing list