aboutsummaryrefslogtreecommitdiffstats
path: root/sched.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-05 18:11:55 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-05 18:11:55 +0000
commit4098fd2400449929fcde1948159a1b2e242f96fb (patch)
tree5f2775d425944046c9e205a035171911e422108f /sched.c
parent5929a2d256db0b6f5fb1b093ed73af6bd94193cf (diff)
re-add the initialization of the scheduled item's time to 0. I had removed
this because I checked the sched_alloc function to use calloc instead of malloc, so I thought it was no longer necessary. However, the sched structures are cached, and cached values will have the old values in them, so this still needs to be done. Also, wrap the scheduler debug code to only happen if option_debug is enabled. It spits out a ton of output so it's nice to be able to enable/disable it during runtime. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24950 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'sched.c')
-rw-r--r--sched.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sched.c b/sched.c
index 7585309ba..fc97bdba4 100644
--- a/sched.c
+++ b/sched.c
@@ -24,7 +24,10 @@
*/
#ifdef DEBUG_SCHEDULER
-#define DEBUG(a) DEBUG_M(a)
+#define DEBUG(a) do { \
+ if (option_debug) \
+ DEBUG_M(a) \
+ } while (0)
#else
#define DEBUG(a)
#endif
@@ -45,6 +48,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/lock.h"
#include "asterisk/utils.h"
#include "asterisk/linkedlists.h"
+#include "asterisk/options.h"
/* Determine if a is sooner than b */
#define SOONER(a,b) (((b).tv_sec > (a).tv_sec) || \
@@ -227,6 +231,7 @@ int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb cal
tmp->data = data;
tmp->resched = when;
tmp->variable = variable;
+ tmp->when = ast_tv(0, 0);
if (sched_settime(&tmp->when, when)) {
sched_release(con, tmp);
} else {
@@ -236,7 +241,8 @@ int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb cal
}
#ifdef DUMP_SCHEDULER
/* Dump contents of the context while we have the lock so nothing gets screwed up by accident. */
- ast_sched_dump(con);
+ if (option_debug)
+ ast_sched_dump(con);
#endif
ast_mutex_unlock(&con->lock);
return res;
@@ -272,7 +278,8 @@ int ast_sched_del(struct sched_context *con, int id)
#ifdef DUMP_SCHEDULER
/* Dump contents of the context while we have the lock so nothing gets screwed up by accident. */
- ast_sched_dump(con);
+ if (option_debug)
+ ast_sched_dump(con);
#endif
ast_mutex_unlock(&con->lock);
@@ -287,7 +294,7 @@ int ast_sched_del(struct sched_context *con, int id)
return 0;
}
-/*! \brief Dump the contents of the scheduler to stderr */
+/*! \brief Dump the contents of the scheduler to LOG_DEBUG */
void ast_sched_dump(const struct sched_context *con)
{
struct sched *q;