From c855c2c3815206ee08b7368b221e9f77af444a64 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Mon, 15 Dec 2008 19:51:24 +0000 Subject: Merged revisions 164416 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r164416 | mmichelson | 2008-12-15 13:45:07 -0600 (Mon, 15 Dec 2008) | 4 lines Add notes to autoservice and pbx doxygen regarding a potential deadlock scenario so that it is avoided in the future ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164419 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/pbx.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include/asterisk/pbx.h') diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h index 2bb95930f..a2f1222c4 100644 --- a/include/asterisk/pbx.h +++ b/include/asterisk/pbx.h @@ -381,6 +381,10 @@ int ast_get_hint(char *hint, int maxlen, char *name, int maxnamelen, * \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. */ @@ -396,6 +400,10 @@ int ast_exists_extension(struct ast_channel *c, const char *context, const char * \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 + * * \retval the priority which matches the given label in the extension * \retval -1 if not found. */ @@ -405,6 +413,10 @@ int ast_findlabel_extension(struct ast_channel *c, const char *context, /*! * \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 * name of the context. Otherwise, the functions behave the same. @@ -421,6 +433,10 @@ int ast_findlabel_extension2(struct ast_channel *c, struct ast_context *con, * \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 @@ int ast_canmatch_extension(struct ast_channel *c, const char *context, * \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 * an exact-match only. Basically, when this returns 0, no matter -- cgit v1.2.3