print(os.get_signal_received()); os.set_signal_received(2); print(os.get_signal_received()); os.set_signal_received(0); local sig_alarm = os.signal_str2int("SIGALRM"); os.signal(sig_alarm); print(os.get_signal_received()); for(local i=0; i < 10; ++i) { if(i % 3) { os.raise("SIGALRM"); } local sig_received = os.get_signal_received(); print(i, sig_received, sig_received ? os.signal_int2str(sig_received) : ""); os.set_signal_received(0); os.sleep(100); } os.set_signal_received(0); local SIGINT = os.signal_str2int("SIGINT"); print(SIGINT, os.signal(SIGINT)); local SIGQUIT = os.signal_str2int("SIGQUIT"); print(SIGQUIT, os.signal(SIGQUIT)); local SIGTERM = os.signal_str2int("SIGTERM"); print(SIGTERM, os.signal(SIGTERM)); local SIGALRM = os.signal_str2int("SIGALRM"); print(SIGALRM, os.signal(SIGALRM)); local SIGHUP = os.signal_str2int("SIGHUP"); print(SIGHUP, os.signal(SIGHUP)); local run_loop = true; while(run_loop) { local signal_received = os.get_signal_received(); print(run_loop, signal_received, signal_received ? os.signal_int2str(signal_received) : "", SIGINT, SIGQUIT, SIGTERM); if(signal_received) { local sig_name = os.signal_int2str(signal_received); switch(sig_name) { case "SIGINT": case "SIGQUIT": case "SIGTERM": run_loop = false; break; case "SIGALRM": run_loop = false; break; case "SIGHUP": run_loop = false; break; } } /* switch(signal_received) { case SIGINT: case SIGQUIT: case SIGTERM: run_loop = false; break; case SIGALRM: run_loop = false; break; case SIGHUP: run_loop = false; break; } */ if(run_loop) { os.sleep(100); } } /* run_loop = true; os.set_signal_received(0); while(run_loop) { local signal_received = os.get_signal_received(); print(run_loop, signal_received, signal_received ? os.signal_int2str(signal_received) : "", SIGINT, SIGQUIT, SIGTERM); switch(signal_received) { case SIGINT: case SIGQUIT: case SIGTERM: run_loop = false; break; case SIGALRM: run_loop = false; break; case SIGHUP: run_loop = false; break; } if(run_loop) { os.sleep(100); } else { print(signal_received, os.signal_int2str(signal_received)); } } */