X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fmain.c;h=18c02dc53bb55b39d5fe29f737f9ef53e53003f8;hb=586e8014f5d6a588f4614831b53c5d8d8efab4d2;hp=d6fefbc61438f1f0a98f09517d162e3c5c9d9ccc;hpb=1b1b4f396d34f08e2e2932e7a69229dcc51a1da2;p=tpg%2Fopendispense2.git diff --git a/src/server/main.c b/src/server/main.c index d6fefbc..18c02dc 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -43,6 +43,7 @@ char *gsCokebankPath = "cokebank.db"; struct sPeriodicCall { void (*Function)(void); } gaPeriodicCalls[ciMaxPeriodics]; +pthread_t gTimerThread; // === CODE === void sigint_handler() @@ -68,7 +69,6 @@ void PrintUsage(const char *progname) int main(int argc, char *argv[]) { int i; - pthread_t timer_thread; // Parse Arguments for( i = 1; i < argc; i++ ) @@ -130,7 +130,7 @@ int main(int argc, char *argv[]) gbServer_RunInBackground = 1; } else if( strcmp(arg, "--dont-daemonise") == 0 ) { - gbServer_RunInBackground = 1; + gbServer_RunInBackground = 0; } else { // Usage error? @@ -157,11 +157,9 @@ int main(int argc, char *argv[]) Load_Itemlist(); - pthread_create( &timer_thread, NULL, Periodic_Thread, NULL ); - Server_Start(); - pthread_kill(timer_thread, SIGKILL); + pthread_kill(gTimerThread, SIGKILL); return 0; } @@ -184,6 +182,11 @@ void *Periodic_Thread(void *Unused) return NULL; } +void StartPeriodicThread(void) +{ + pthread_create( &gTimerThread, NULL, Periodic_Thread, NULL ); +} + void AddPeriodicFunction(void (*Fcn)(void)) { int i; @@ -247,6 +250,8 @@ int InitSerial(const char *File, int BaudRate) info.c_lflag = 0; // Non-Canoical, No Echo info.c_cflag = baud | CS8 | CLOCAL | CREAD; // baud, 8N1 + info.c_iflag = IGNCR; // Ignore \r + info.c_oflag = 0; // ??? cfsetspeed(&info, baud); info.c_cc[VTIME] = 0; // No time limit info.c_cc[VMIN] = 1; // Block until 1 char