mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	Merged revisions 164419 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r164419 | mmichelson | 2008-12-15 13:51:24 -0600 (Mon, 15 Dec 2008) | 12 lines 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/branches/1.6.1@164421 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -1417,6 +1417,11 @@ int ast_autoservice_start(struct ast_channel *chan); | |||||||
| /*!  | /*!  | ||||||
|  * \brief Stop servicing a channel for us...   |  * \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 0 success | ||||||
|  * \retval -1 error, or the channel has been hungup  |  * \retval -1 error, or the channel has been hungup  | ||||||
|  */ |  */ | ||||||
|   | |||||||
| @@ -369,6 +369,10 @@ int ast_get_hint(char *hint, int maxlen, char *name, int maxnamelen, | |||||||
|  * \param priority priority of the action within the extension |  * \param priority priority of the action within the extension | ||||||
|  * \param callerid callerid to search for |  * \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  |  * \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. |  *         is found a non zero value will be returned. Otherwise, 0 is returned. | ||||||
|  */ |  */ | ||||||
| @@ -384,6 +388,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 label label of the action within the extension to match to priority | ||||||
|  * \param callerid callerid to search for |  * \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 the priority which matches the given label in the extension | ||||||
|  * \retval -1 if not found. |  * \retval -1 if not found. | ||||||
|  */ |  */ | ||||||
| @@ -393,6 +401,10 @@ int ast_findlabel_extension(struct ast_channel *c, const char *context, | |||||||
| /*! | /*! | ||||||
|  * \brief Find the priority of an extension that has the specified label |  * \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 |  * \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 |  * a pointer to an ast_context structure to specify the context instead of the | ||||||
|  * name of the context. Otherwise, the functions behave the same. |  * name of the context. Otherwise, the functions behave the same. | ||||||
| @@ -409,6 +421,10 @@ int ast_findlabel_extension2(struct ast_channel *c, struct ast_context *con, | |||||||
|  * \param priority priority of extension path |  * \param priority priority of extension path | ||||||
|  * \param callerid callerid of extension being searched for |  * \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 |  * \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 |  * 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 |  * what you add to exten, it's not going to be a valid extension anymore | ||||||
| @@ -425,6 +441,10 @@ int ast_canmatch_extension(struct ast_channel *c, const char *context, | |||||||
|  * \param priority priority of extension path |  * \param priority priority of extension path | ||||||
|  * \param callerid callerid of extension being searched for |  * \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 |  * \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 |  * 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 |  * an exact-match only.  Basically, when this returns 0, no matter | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user