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
This commit is contained in:
Michael Jerris 2007-02-14 00:31:11 +00:00
parent 0c34702513
commit c0a362d156
1 changed files with 10 additions and 9 deletions

View File

@ -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++) {