Debug stacks will now be printed on Ctrl-C. Also client properly quits on Ctrl-C.

master
Perttu Ahola 2011-02-16 22:54:07 +02:00
parent 741776313a
commit fb5ae9a7a5
2 changed files with 10 additions and 4 deletions

View File

@ -1874,7 +1874,7 @@ int main(int argc, char *argv[])
/*
Menu-game loop
*/
while(g_device->run())
while(g_device->run() && kill == false)
{
// This is used for catching disconnects
@ -1886,7 +1886,7 @@ int main(int argc, char *argv[])
Loop quits when menu returns proper parameters.
*/
for(;;)
while(kill == false)
{
// Cursor can be non-visible when coming from the game
device->getCursorControl()->setVisible(true);
@ -2179,7 +2179,7 @@ int main(int argc, char *argv[])
// NOTE: So we have to use getTime() and call run()s between them
u32 lasttime = device->getTimer()->getTime();
while(device->run())
while(device->run() && kill == false)
{
if(g_disconnect_requested)
{

View File

@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting.h"
#include "config.h"
#include "debug.h"
namespace porting
{
@ -47,8 +48,13 @@ void sigint_handler(int sig)
{
if(g_killed == false)
{
dstream<<DTIME<<"sigint_handler(): "
dstream<<DTIME<<"INFO: sigint_handler(): "
<<"Ctrl-C pressed, shutting down."<<std::endl;
dstream<<DTIME<<"INFO: siging_handler(): "
<<"Printing debug stacks"<<std::endl;
debug_stacks_print();
g_killed = true;
}
else