From bec22df6ba7334559e0068c125e7fe66d5804f80 Mon Sep 17 00:00:00 2001
From: Arnaud Blanchard <arnaud.blanchard@ensea.fr>
Date: Wed, 15 Nov 2017 10:57:39 +0100
Subject: [PATCH] Try to quit normally (blc_status=BLC_QUIT) while receiving
 SIGTREM the first time, the second time, use exit()

---
 src/blc_program.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/blc_program.cpp b/src/blc_program.cpp
index fa7cb16..2cdd69f 100644
--- a/src/blc_program.cpp
+++ b/src/blc_program.cpp
@@ -408,8 +408,14 @@ void blc_program_args_display_help()
 }
 
 static void on_sigterm(int){
-    fprintf(stderr, "%s: receiving SIGTERM\n", blc_program_id);
-    exit(EXIT_SUCCESS);
+    if (blc_status==BLC_QUIT){
+        fprintf(stderr, "%s: receiving SIGTERM in quiting mode. Force to quit.\n", blc_program_id);
+        exit(EXIT_SUCCESS);
+    }
+    else {
+        fprintf(stderr, "%s: receiving SIGTERM\n", blc_program_id);
+        blc_status=BLC_QUIT;
+    }
 }
 
 static void on_sigtstp(int){
-- 
GitLab