/** Exit with optional confirmation. */ void Exit() { if(showExitConfirmation) { ShowConfirmDialog(NULL, ExitHandler, "Exit JWM", "Are you sure?", NULL); } else { ExitHandler(NULL); } }
/** Exit with optional confirmation. */ void Exit(void) { if(settings.exitConfirmation) { ShowConfirmDialog(NULL, ExitHandler, _("Exit JWM"), _("Are you sure?"), NULL); } else { ExitHandler(NULL); } }
static int intrOverflow(int ca) { s_intrOverflowCount++; // A write to the overflow flag will clear the overflow flag // --------------------------------------------------------- *T_MODE |= (1 << 11); ExitHandler(); return -1; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_Service_Config daemon; daemon.open (argv[0]); parse_args (argc, argv); if (child) { worker (n_iterations); ACE_OS::exit (exit_code); } ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Process_Manager test. Expect output from" "2 or 3 processes...\n")); ACE_Process_Manager::instance ()->register_handler (new ExitHandler ("default")); pid_t pid1 = respawn_self (argv[0], n_iterations, 111); pid_t pid2 = respawn_self (argv[0], n_iterations + 500, 222); #if !defined (ACE_WIN32) pid_t pid3 = ACE_OS::fork (); if (!pid3) { worker (n_iterations); return 999; } #endif /* ACE_WIN32 */ ACE_Process_Manager::instance ()->register_handler (new ExitHandler ("specific"), pid2); if (pid1 == ACE_INVALID_PID || pid2 == ACE_INVALID_PID) ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %p\n", "start_n"), 1); ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Test parent waiting (synchronously, " "up to 6 seconds) for children...\n")); int result = ACE_Process_Manager::instance ()->wait (ACE_Time_Value (6)); ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Test parent: %d processes left\n", result)); if (result > 0) { ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Test parent waiting (synchronously, " "indefinitely) for remaining children...\n")); result = ACE_Process_Manager::instance ()->wait (); ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Test parent finished waiting: %d\n", result)); } ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Test parent: try auto-reap functions\n")); ACE_Process_Manager::instance ()->open (ACE_Process_Manager::DEFAULT_SIZE, ACE_Reactor::instance ()); pid1 = respawn_self (argv[0], n_iterations + 200, 333 ); pid2 = respawn_self (argv[0], n_iterations + 500, 444); #if !defined (ACE_WIN32) pid3 = ACE_OS::fork (); if (!pid3) { worker (n_iterations); return 888; } #endif /* ACE_WIN32 */ ExitHandler *main_thread_work = 0; ACE_NEW_RETURN (main_thread_work, ExitHandler ("main thread worker"), 1); ACE_Reactor::instance ()->schedule_timer (main_thread_work, 0, ACE_Time_Value (2), ACE_Time_Value (1, 500000)); ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Test parent: expect several Processes " "to be auto-detected over the next 30 seconds.\n" "The main thread will do some other work, too.\n" )); ACE_Time_Value briefly (30); result = ACE_Reactor::run_event_loop (briefly); ACE_DEBUG ((LM_DEBUG, "(%P|%t@%T) Test parent: finished (%d) %d.%d. Close" "Process_Manager...\n", result, briefly.sec (), briefly.usec ())); ACE_Process_Manager::instance ()->close (); return 0; }