From c0a362d156e3467b33ac02e1d0d197032188e57a Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Wed, 14 Feb 2007 00:31:11 +0000 Subject: [PATCH] use WaitForSingleObject for the console loop to wait on stdin on the windows build, as the select was not working properly. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4247 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_console.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/switch_console.c b/src/switch_console.c index f1d30ea218..5c9c22f14b 100644 --- a/src/switch_console.c +++ b/src/switch_console.c @@ -199,8 +199,10 @@ SWITCH_DECLARE(void) switch_console_loop(void) while(running) { uint32_t arg; +#ifndef _MSC_VER fd_set rfds, efds; struct timeval tv = {0, 20000}; +#endif switch_core_session_ctl(SCSC_CHECK_RUNNING, &arg); if (!arg) { @@ -210,13 +212,14 @@ SWITCH_DECLARE(void) switch_console_loop(void) if (activity) { switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, SWITCH_LOG_CONSOLE, "\nfreeswitch@%s> ", hostname); } - #ifdef _MSC_VER -//Microsofts macros don't pass their own compilers warnings. -#pragma warning(push) -#pragma warning(disable: 4127 4389) -#endif + activity = WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE),20); + if (activity == 102) { + fflush(stdout); + continue; + } +#else FD_ZERO(&rfds); FD_ZERO(&efds); FD_SET(fileno(stdin), &rfds); @@ -225,14 +228,12 @@ SWITCH_DECLARE(void) switch_console_loop(void) break; } -#ifdef _MSC_VER -#pragma warning(pop) -#endif - if (activity == 0) { fflush(stdout); continue; } +#endif + memset(&cmd, 0, sizeof(cmd)); for (x = 0; x < (sizeof(cmd)-1); x++) {