mirror of https://github.com/OpenTTD/OpenTTD
(svn r1615) -Fix: [1107350] console ignoring return character occasionally. For everyone that is running 2 dedicated servers on 1 windows machine, console input is now correct (event was the same so it was random which console received the input)
parent
52ec917125
commit
9a96f5b64e
|
@ -89,6 +89,7 @@ static void DedicatedSignalHandler(int sig)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
#include <time.h>
|
||||||
HANDLE hEvent;
|
HANDLE hEvent;
|
||||||
static HANDLE hThread; // Thread to close
|
static HANDLE hThread; // Thread to close
|
||||||
static char _win_console_thread_buffer[200];
|
static char _win_console_thread_buffer[200];
|
||||||
|
@ -104,8 +105,11 @@ void WINAPI CheckForConsoleInput(void)
|
||||||
|
|
||||||
void CreateWindowsConsoleThread(void)
|
void CreateWindowsConsoleThread(void)
|
||||||
{
|
{
|
||||||
|
static char tbuffer[9];
|
||||||
/* Create event to signal when console input is ready */
|
/* Create event to signal when console input is ready */
|
||||||
hEvent = CreateEvent(NULL, false, false, "keyboard input");
|
hEvent = CreateEvent(NULL, false, false, _strtime(tbuffer));
|
||||||
|
if (hEvent == NULL)
|
||||||
|
error("Cannot create console event!");
|
||||||
|
|
||||||
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)CheckForConsoleInput, 0, 0, NULL);
|
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)CheckForConsoleInput, 0, 0, NULL);
|
||||||
if (hThread == NULL)
|
if (hThread == NULL)
|
||||||
|
@ -117,6 +121,7 @@ void CreateWindowsConsoleThread(void)
|
||||||
void CloseWindowsConsoleThread(void)
|
void CloseWindowsConsoleThread(void)
|
||||||
{
|
{
|
||||||
CloseHandle(hThread);
|
CloseHandle(hThread);
|
||||||
|
CloseHandle(hEvent);
|
||||||
DEBUG(misc, 0) ("Windows console thread shut down...");
|
DEBUG(misc, 0) ("Windows console thread shut down...");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue