提交 c0a362d1 authored 作者: Michael Jerris's avatar Michael Jerris

use WaitForSingleObject for the console loop to wait on stdin on the windows…

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
上级 0c347025
......@@ -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++) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论