feat: new syscall: sigpending, sigsuspend
[lunaix-os.git] / lunaix-os / kernel / demos / signal_demo.c
index 87b63040627492eed45e74a4cb5cf748601af4e5..e5f95332f9aa97138a816bf20db0e7fcf60358e9 100644 (file)
@@ -28,6 +28,10 @@ sigalrm_handler(int signum)
     kprintf(KWARN "I, pid %d, have received an alarm!\n", pid);
 }
 
+// FIXME: Race condition with signal (though rare!)
+// For some reason, there is a chance that iret in soft_iret path
+//   get unhappy when return from signal handler. Investigation is needed!
+
 void __USER__
 _signal_demo_main()
 {
@@ -79,5 +83,5 @@ _signal_demo_main()
 
     kprintf("done\n");
 
-    spin();
+    _exit(0);
 }
\ No newline at end of file