Author: mikej Date: Mon Mar 5 18:18:29 2007 New Revision: 4454 Modified: freeswitch/trunk/src/include/switch_core.h freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c freeswitch/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c freeswitch/trunk/src/switch_core.c freeswitch/trunk/src/switch_ivr.c Log: change switch_core_timer_next to return switch_status_t, update all users to new usage, add some error checking to mod_conference so that it bails out of the loops more gracefully on shutdown. Modified: freeswitch/trunk/src/include/switch_core.h ============================================================================== --- freeswitch/trunk/src/include/switch_core.h (original) +++ freeswitch/trunk/src/include/switch_core.h Mon Mar 5 18:18:29 2007 @@ -931,7 +931,7 @@ \param timer the timer to wait on \return the newest sample count */ -SWITCH_DECLARE(int) switch_core_timer_next(switch_timer_t *timer); +SWITCH_DECLARE(switch_status_t) switch_core_timer_next(switch_timer_t *timer); /*! \brief Step the timer one step Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c ============================================================================== --- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c (original) +++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c Mon Mar 5 18:18:29 2007 @@ -676,7 +676,10 @@ switch_size_t file_data_len = samples * 2; /* Sync the conference to a single timing source */ - switch_core_timer_next(&timer); + if (switch_core_timer_next(&timer) != SWITCH_STATUS_SUCCESS) { + switch_set_flag(conference, CFLAG_DESTRUCT); + break; + } switch_mutex_lock(conference->mutex); ready = 0; @@ -1659,7 +1662,9 @@ } } - switch_core_timer_next(&timer); + if (switch_core_timer_next(&timer) != SWITCH_STATUS_SUCCESS) { + break; + } } /* Rinse ... Repeat */ Modified: freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c Mon Mar 5 18:18:29 2007 @@ -623,7 +623,7 @@ { switch_size_t olen = globals.read_codec.implementation->samples_per_frame; - if (switch_core_timer_next(&tech_pvt->timer) < 0) { + if (switch_core_timer_next(&tech_pvt->timer) != SWITCH_STATUS_SUCCESS) { switch_core_file_close(&tech_pvt->fh); switch_core_codec_destroy(&tech_pvt->write_codec); goto cng; Modified: freeswitch/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c (original) +++ freeswitch/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c Mon Mar 5 18:18:29 2007 @@ -273,7 +273,7 @@ } if (tto->timer) { - if (switch_core_timer_next(tto->timer)< 0) { + if (switch_core_timer_next(tto->timer) != SWITCH_STATUS_SUCCESS) { break; } Modified: freeswitch/trunk/src/switch_core.c ============================================================================== --- freeswitch/trunk/src/switch_core.c (original) +++ freeswitch/trunk/src/switch_core.c Mon Mar 5 18:18:29 2007 @@ -1315,7 +1315,7 @@ } -SWITCH_DECLARE(int) switch_core_timer_next(switch_timer_t *timer) +SWITCH_DECLARE(switch_status_t) switch_core_timer_next(switch_timer_t *timer) { if (!timer->timer_interface) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Timer is not initilized!\n"); @@ -1323,9 +1323,9 @@ } if (timer->timer_interface->timer_next(timer) == SWITCH_STATUS_SUCCESS) { - return timer->samplecount; + return SWITCH_STATUS_SUCCESS; } else { - return -1; + return SWITCH_STATUS_GENERR; } } Modified: freeswitch/trunk/src/switch_ivr.c ============================================================================== --- freeswitch/trunk/src/switch_ivr.c (original) +++ freeswitch/trunk/src/switch_ivr.c Mon Mar 5 18:18:29 2007 @@ -1444,7 +1444,7 @@ if (timer_name) { - if (switch_core_timer_next(&timer) < 0) { + if (switch_core_timer_next(&timer) != SWITCH_STATUS_SUCCESS) { break; } } else { /* time off the channel (if you must) */ @@ -1750,7 +1750,7 @@ if (switch_test_flag(sh, SWITCH_SPEECH_FLAG_PAUSE)) { if (timer) { - if ((x = switch_core_timer_next(timer)) < 0) { + if (switch_core_timer_next(timer) != SWITCH_STATUS_SUCCESS) { break; } } else { @@ -1813,7 +1813,7 @@ } if (timer) { - if ((x = switch_core_timer_next(timer)) < 0) { + if (switch_core_timer_next(timer) != SWITCH_STATUS_SUCCESS) { break; } } else { /* time off the channel (if you must) */