--- a/src/relpipe-out-jack.cpp Tue Sep 29 20:49:04 2020 +0200
+++ b/src/relpipe-out-jack.cpp Wed Sep 30 00:34:41 2020 +0200
@@ -35,18 +35,26 @@
using namespace relpipe::reader;
using namespace relpipe::out::jack;
+static std::shared_ptr<JackHandler> jackHandler = nullptr;
+
+void finish(int sig) {
+ if (jackHandler) jackHandler->finish(sig);
+}
+
int main(int argc, char**argv) {
CLI cli(argc, argv);
CLI::untieStdIO();
-
+
int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR;
try {
+ signal(SIGHUP, finish);
+ signal(SIGINT, finish);
CLIParser cliParser;
Configuration configuration = cliParser.parse(cli.arguments());
std::shared_ptr<RelationalReader> reader(Factory::create(std::cin));
- JackHandler handler(configuration);
- reader->addHandler(&handler);
+ jackHandler.reset(new JackHandler(configuration));
+ reader->addHandler(jackHandler.get());
reader->process();
resultCode = CLI::EXIT_CODE_SUCCESS;