Browse Source

plugin-bridge: signal setup only done for linux

tags/1.9.8
falkTX 7 years ago
parent
commit
438fd9c77c
1 changed files with 14 additions and 17 deletions
  1. +14
    -17
      source/bridges-plugin/CarlaBridgePlugin.cpp

+ 14
- 17
source/bridges-plugin/CarlaBridgePlugin.cpp View File

@@ -26,11 +26,8 @@
#include "CarlaMainLoop.hpp"
#include "CarlaMIDI.h"

#ifdef CARLA_OS_UNIX
# include <signal.h>
#endif

#ifdef CARLA_OS_LINUX
# include <signal.h>
# include <sys/prctl.h>
#endif

@@ -57,7 +54,16 @@ static bool gIsInitiated = false;
static volatile bool gCloseNow = false;
static volatile bool gSaveNow = false;

#ifdef CARLA_OS_WIN
#if defined(CARLA_OS_LINUX)
static void closeSignalHandler(int) noexcept
{
gCloseNow = true;
}
static void saveSignalHandler(int) noexcept
{
gSaveNow = true;
}
#elif defined(CARLA_OS_WIN)
static BOOL WINAPI winSignalHandler(DWORD dwCtrlType) noexcept
{
if (dwCtrlType == CTRL_C_EVENT)
@@ -67,22 +73,11 @@ static BOOL WINAPI winSignalHandler(DWORD dwCtrlType) noexcept
}
return FALSE;
}
#elif defined(CARLA_OS_LINUX)
static void closeSignalHandler(int) noexcept
{
gCloseNow = true;
}
static void saveSignalHandler(int) noexcept
{
gSaveNow = true;
}
#endif

static void initSignalHandler()
{
#ifdef CARLA_OS_WIN
SetConsoleCtrlHandler(winSignalHandler, TRUE);
#elif defined(CARLA_OS_LINUX)
#if defined(CARLA_OS_LINUX)
struct sigaction sig;
carla_zeroStruct(sig);

@@ -96,6 +91,8 @@ static void initSignalHandler()
sig.sa_flags = SA_RESTART;
sigemptyset(&sig.sa_mask);
sigaction(SIGUSR1, &sig, nullptr);
#elif defined(CARLA_OS_WIN)
SetConsoleCtrlHandler(winSignalHandler, TRUE);
#endif
}



Loading…
Cancel
Save