app: add debug_terminate() event, quick hack to terminate
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Fri, 28 Jul 2017 13:43:47 +0000 (15:43 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 8 Aug 2017 15:24:00 +0000 (17:24 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
generate-binding-glue.py
src/app.cpp

index cec4fea..e1f1d5a 100644 (file)
@@ -94,6 +94,7 @@ API = {
             { 'name': 'debug_status', },
             { 'name': 'debug_layers', },
             { 'name': 'debug_surfaces', },
+            { 'name': 'debug_terminate' },
         ]
 }
 
index 255a64a..5ff8729 100644 (file)
@@ -18,6 +18,8 @@
 
 #include <fstream>
 #include <json.hpp>
+#include <bits/signum.h>
+#include <csignal>
 
 namespace wm {
 
@@ -282,6 +284,12 @@ binding_api::result_type binding_api::debug_status() {
    return Ok(jr);
 }
 
+binding_api::result_type binding_api::debug_terminate() {
+   logdebug("%s", __func__);
+   raise(SIGKILL);  // XXX afb-daemon kills it's pgroup using TERM, which doesn't play well with perf
+   return Ok(json_object_new_object());
+}
+
 //                  _             _ _            _                 _
 //   ___ ___  _ __ | |_ _ __ ___ | | | ___ _ __ | |__   ___   ___ | | _____
 //  / __/ _ \| '_ \| __| '__/ _ \| | |/ _ \ '__|| '_ \ / _ \ / _ \| |/ / __|