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

This commit is contained in:
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 Menu-game loop
*/ */
while(g_device->run()) while(g_device->run() && kill == false)
{ {
// This is used for catching disconnects // This is used for catching disconnects
@ -1886,7 +1886,7 @@ int main(int argc, char *argv[])
Loop quits when menu returns proper parameters. Loop quits when menu returns proper parameters.
*/ */
for(;;) while(kill == false)
{ {
// Cursor can be non-visible when coming from the game // Cursor can be non-visible when coming from the game
device->getCursorControl()->setVisible(true); 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 // NOTE: So we have to use getTime() and call run()s between them
u32 lasttime = device->getTimer()->getTime(); u32 lasttime = device->getTimer()->getTime();
while(device->run()) while(device->run() && kill == false)
{ {
if(g_disconnect_requested) 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 "porting.h"
#include "config.h" #include "config.h"
#include "debug.h"
namespace porting namespace porting
{ {
@ -47,8 +48,13 @@ void sigint_handler(int sig)
{ {
if(g_killed == false) if(g_killed == false)
{ {
dstream<<DTIME<<"sigint_handler(): " dstream<<DTIME<<"INFO: sigint_handler(): "
<<"Ctrl-C pressed, shutting down."<<std::endl; <<"Ctrl-C pressed, shutting down."<<std::endl;
dstream<<DTIME<<"INFO: siging_handler(): "
<<"Printing debug stacks"<<std::endl;
debug_stacks_print();
g_killed = true; g_killed = true;
} }
else else