[asterisk-commits] mmichelson: branch group/CCSS r214648 - /team/group/CCSS/main/ccss.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Aug 28 13:23:28 CDT 2009


Author: mmichelson
Date: Fri Aug 28 13:23:25 2009
New Revision: 214648

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=214648
Log:
Fix some bad logic used in scheduler timing.

In my next commit, I will be switching to the
sched_thread API since I need a thread to do
the work of running the callbacks for me.


Modified:
    team/group/CCSS/main/ccss.c

Modified: team/group/CCSS/main/ccss.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/CCSS/main/ccss.c?view=diff&rev=214648&r1=214647&r2=214648
==============================================================================
--- team/group/CCSS/main/ccss.c (original)
+++ team/group/CCSS/main/ccss.c Fri Aug 28 13:23:25 2009
@@ -86,6 +86,10 @@
 	 * determine when we may move on
 	 */
 	struct ast_event_sub *sub;
+	/*!
+	 * Scheduler id of offer timer.
+	 */
+	int offer_timer_id;
 	/* XXX Potentially more to come...
 	 */
 };
@@ -653,6 +657,7 @@
 static int offer_timer_expire(const void *data)
 {
 	const struct ast_cc_agent *agent = data;
+	ast_log(LOG_NOTICE, "Hello?\n");
 	ast_cc_request_state_change(CC_FAILED, agent->core_id, "Generic agent offer timer expired");
 	return 0;
 }
@@ -660,12 +665,19 @@
 static int cc_generic_agent_start_offer_timer(struct ast_cc_agent *agent)
 {
 	int when;
+	int sched_id;
+	struct cc_generic_agent_pvt *generic_pvt = agent->private_data;
 
 	ast_assert(cc_sched != NULL);
 	ast_assert(agent->cc_params != NULL);
 
 	when = ast_get_cc_offer_timer(agent->cc_params) * 1000;
-	return ast_sched_add(cc_sched, when, offer_timer_expire, agent);
+	ast_log(LOG_NOTICE, "About to schedule timer expiration for %d ms\n", when);
+	if ((sched_id = ast_sched_add(cc_sched, when, offer_timer_expire, agent)) == -1) {
+		return -1;
+	}
+	generic_pvt->offer_timer_id = sched_id;
+	return 0;
 }
 
 static void cc_generic_agent_ack(struct ast_cc_agent *agent)




More information about the asterisk-commits mailing list