aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-02 14:29:49 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-02 14:29:49 +0000
commit40a23f8e23506641872b78c90027823be642c14e (patch)
tree57cdade984bcd8eabd1fddaf10b245f182591985
parenta26f12f4e2700d77e9f0033e6ae14f9f9c03c249 (diff)
Merged revisions 115197 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r115197 | mmichelson | 2008-05-02 09:28:55 -0500 (Fri, 02 May 2008) | 14 lines 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/branches/1.6.0@115198 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--include/asterisk/sched.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/include/asterisk/sched.h b/include/asterisk/sched.h
index 3978e3299..519da71ef 100644
--- a/include/asterisk/sched.h
+++ b/include/asterisk/sched.h
@@ -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) \
do { \