Clarify a comment that was, well, just wrong. It turns out that

ignoring the way that macros expand. Instead, I have clarified in the
comment why the macro will work even if the scheduler id for the
task to be deleted changes during the execution of the macro.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@115196 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson
2008-05-02 14:28:19 +00:00
parent 291dd88595
commit 89453ef4c1

View File

@@ -41,17 +41,11 @@ extern "C" {
* then whatever callback had been running will complete
* and reinsert the task into the scheduler.
*
* Note that this is NOT always appropriate. This should
* only be used for tasks whose callback may return non-zero
* to indicate that the task needs to be rescheduled with the
* SAME id as previously.
*
* Some scheduler callbacks instead may reschedule the task themselves,
* thus removing the previous task id from the queue. If the task is rescheduled
* in this manner, then the id for the task will be different than before
* and so it makes no sense to use this macro. Note that if using the scheduler
* in this manner, it is perfectly acceptable for ast_sched_del to fail, and this
* macro should NOT be used.
* Since macro expansion essentially works like pass-by-name
* parameter passing, this macro will still work correctly even
* if the id of the task to delete changes. This holds as long as
* the name of the id which could change is passed to the macro
* and not a copy of the value of the id.
*/
#define AST_SCHED_DEL(sched, id) \
({ \