diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-05-02 14:28:55 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-05-02 14:28:55 +0000 |
commit | e8af83cb192e6db7b79da520fc53a247031078f7 (patch) | |
tree | e8f6b96a3bfeb24b7c98312515ff9c5829bdf3e0 | |
parent | 315b136de38104f5e645ee3f46e80c1ed8eaca20 (diff) |
Merged revisions 115196 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r115196 | mmichelson | 2008-05-02 09:28:19 -0500 (Fri, 02 May 2008) | 6 lines
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: http://svn.digium.com/svn/asterisk/trunk@115197 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | include/asterisk/sched.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/include/asterisk/sched.h b/include/asterisk/sched.h index ed855d562..526c0d90d 100644 --- a/include/asterisk/sched.h +++ b/include/asterisk/sched.h @@ -42,17 +42,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) \ do { \ |