summaryrefslogtreecommitdiff
path: root/include/asterisk/sched.h
diff options
context:
space:
mode:
authorTerry Wilson <twilson@digium.com>2012-02-20 23:43:27 +0000
committerTerry Wilson <twilson@digium.com>2012-02-20 23:43:27 +0000
commit57f42bd74f78d5022631b2ba2269892f8a3a384a (patch)
tree3283ec4ac88c5b3c267f4490b410e5331911f2bb /include/asterisk/sched.h
parent25e5eb3b96e6d9bcbb2fc02fbd879ae21104c1f5 (diff)
ast_channel opaquification of pointers and integral types
Review: https://reviewboard.asterisk.org/r/1753/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@356042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/sched.h')
-rw-r--r--include/asterisk/sched.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asterisk/sched.h b/include/asterisk/sched.h
index b16421a88..aac6dc82b 100644
--- a/include/asterisk/sched.h
+++ b/include/asterisk/sched.h
@@ -56,6 +56,19 @@ extern "C" {
(_sched_res); \
})
+#define AST_SCHED_DEL_ACCESSOR(sched, obj, getter, setter) \
+ ({ \
+ int _count = 0; \
+ int _sched_res = -1; \
+ while (getter(obj) > -1 && (_sched_res = ast_sched_del(sched, getter(obj))) && ++_count < 10) \
+ usleep(1); \
+ if (_count == 10) { \
+ ast_debug(3, "Unable to cancel schedule ID %d.\n", getter(obj)); \
+ } \
+ setter(obj, -1); \
+ (_sched_res); \
+ })
+
/*!
* \brief schedule task to get deleted and call unref function
* \sa AST_SCHED_DEL