[asterisk-commits] mmichelson: branch 1.4 r164416 - /branches/1.4/include/asterisk/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Dec 15 13:45:08 CST 2008
Author: mmichelson
Date: Mon Dec 15 13:45:07 2008
New Revision: 164416
URL: http://svn.digium.com/view/asterisk?view=rev&rev=164416
Log:
Add notes to autoservice and pbx doxygen regarding a potential
deadlock scenario so that it is avoided in the future
Modified:
branches/1.4/include/asterisk/channel.h
branches/1.4/include/asterisk/pbx.h
Modified: branches/1.4/include/asterisk/channel.h
URL: http://svn.digium.com/view/asterisk/branches/1.4/include/asterisk/channel.h?view=diff&rev=164416&r1=164415&r2=164416
==============================================================================
--- branches/1.4/include/asterisk/channel.h (original)
+++ branches/1.4/include/asterisk/channel.h Mon Dec 15 13:45:07 2008
@@ -1187,6 +1187,11 @@
/*!
* \brief Stop servicing a channel for us...
*
+ * \note if chan is locked prior to calling ast_autoservice_stop, it
+ * is likely that there will be a deadlock between the thread that calls
+ * ast_autoservice_stop and the autoservice thread. It is important
+ * that chan is not locked prior to this call
+ *
* \retval 0 success
* \retval -1 error, or the channel has been hungup
*/
Modified: branches/1.4/include/asterisk/pbx.h
URL: http://svn.digium.com/view/asterisk/branches/1.4/include/asterisk/pbx.h?view=diff&rev=164416&r1=164415&r2=164416
==============================================================================
--- branches/1.4/include/asterisk/pbx.h (original)
+++ branches/1.4/include/asterisk/pbx.h Mon Dec 15 13:45:07 2008
@@ -383,6 +383,10 @@
* \param priority priority of the action within the extension
* \param callerid callerid to search for
*
+ * \note It is possible for autoservice to be started and stopped on c during this
+ * function call, it is important that c is not locked prior to calling this. Otherwise
+ * a deadlock may occur
+ *
* \return If an extension within the given context(or callerid) with the given priority
* is found a non zero value will be returned. Otherwise, 0 is returned.
*/
@@ -398,6 +402,10 @@
* \param label label of the action within the extension to match to priority
* \param callerid callerid to search for
*
+ * \note It is possible for autoservice to be started and stopped on c during this
+ * function call, it is important that c is not locked prior to calling this. Otherwise
+ * a deadlock may occur
+ *
* \return the priority which matches the given label in the extension or -1 if not found.
*/
int ast_findlabel_extension(struct ast_channel *c, const char *context,
@@ -405,6 +413,10 @@
/*!
* \brief Find the priority of an extension that has the specified label
+ *
+ * \note It is possible for autoservice to be started and stopped on c during this
+ * function call, it is important that c is not locked prior to calling this. Otherwise
+ * a deadlock may occur
*
* \note This function is the same as ast_findlabel_extension, except that it accepts
* a pointer to an ast_context structure to specify the context instead of the
@@ -422,6 +434,10 @@
* \param priority priority of extension path
* \param callerid callerid of extension being searched for
*
+ * \note It is possible for autoservice to be started and stopped on c during this
+ * function call, it is important that c is not locked prior to calling this. Otherwise
+ * a deadlock may occur
+ *
* \return If "exten" *could be* a valid extension in this context with or without
* some more digits, return non-zero. Basically, when this returns 0, no matter
* what you add to exten, it's not going to be a valid extension anymore
@@ -437,6 +453,10 @@
* \param exten extension to check
* \param priority priority of extension path
* \param callerid callerid of extension being searched for
+ *
+ * \note It is possible for autoservice to be started and stopped on c during this
+ * function call, it is important that c is not locked prior to calling this. Otherwise
+ * a deadlock may occur
*
* \return If "exten" *could match* a valid extension in this context with
* some more digits, return non-zero. Does NOT return non-zero if this is
More information about the asterisk-commits
mailing list