20 #ifndef __JackLibGlobals__
21 #define __JackLibGlobals__
23 #include "JackShmMem.h"
24 #include "JackEngineControl.h"
25 #include "JackGlobals.h"
26 #include "JackPlatformPlug.h"
27 #include "JackGraphManager.h"
28 #include "JackMessageBuffer.h"
30 #include "JackClient.h"
31 #include "JackError.h"
37 #include <sys/types.h>
38 typedef _sigset_t sigset_t;
40 typedef HANDLE sigset_t;
60 static int fClientCount;
66 JackMessageBuffer::Create();
75 sigemptyset(&signals);
76 sigaddset(&signals, SIGPIPE);
77 sigprocmask(SIG_BLOCK, &signals, &fProcessSignals);
84 for (
int i = 0; i < CLIENT_NUM; i++) {
85 fSynchroTable[i].Disconnect();
87 JackMessageBuffer::Destroy();
93 sigprocmask(SIG_BLOCK, &fProcessSignals, 0);
99 if (!JackGlobals::fServerRunning && fClientCount > 0) {
102 jack_error(
"Jack server was closed but clients are still allocated, cleanup...");
103 for (
int i = 0; i < CLIENT_NUM; i++) {
104 JackClient* client = JackGlobals::fClientTable[i];
109 JackGlobals::fClientTable[CLIENT_NUM] = NULL;
119 if (fClientCount++ == 0 && !fGlobals) {
120 jack_log(
"JackLibGlobals Init %x", fGlobals);
122 fGlobals =
new JackLibGlobals();
126 static void Destroy()
128 if (--fClientCount == 0 && fGlobals) {
129 jack_log(
"JackLibGlobals Destroy %x", fGlobals);