diff --git a/common/JackAtomicState.h b/common/JackAtomicState.h index 522f8df8..4c7f992b 100644 --- a/common/JackAtomicState.h +++ b/common/JackAtomicState.h @@ -93,8 +93,8 @@ class JackAtomicState protected: - T fState[2]; volatile AtomicCounter fCounter; + T fState[2]; SInt32 fCallWriteCounter; UInt32 WriteNextStateStartAux() diff --git a/common/JackEngineControl.h b/common/JackEngineControl.h index c889425c..78d9a42b 100644 --- a/common/JackEngineControl.h +++ b/common/JackEngineControl.h @@ -48,7 +48,14 @@ class JackGraphManager; PRE_PACKED_STRUCTURE struct SERVER_EXPORT JackEngineControl : public JackShmMem { + // Timer + JackFrameTimer fFrameTimer; + + // Padding to align fTransport + char padding[ sizeof(UInt32) - sizeof(fFrameTimer) % sizeof(UInt32) ]; + // Shared state + JackTransportEngine fTransport; jack_nframes_t fBufferSize; jack_nframes_t fSampleRate; bool fSyncMode; @@ -64,7 +71,6 @@ struct SERVER_EXPORT JackEngineControl : public JackShmMem int fClientPriority; int fMaxClientPriority; char fServerName[JACK_SERVER_NAME_SIZE+1]; - JackTransportEngine fTransport; jack_timer_type_t fClockSource; int fDriverNum; bool fVerbose; @@ -85,9 +91,6 @@ struct SERVER_EXPORT JackEngineControl : public JackShmMem UInt64 fComputation; UInt64 fConstraint; - // Timer - JackFrameTimer fFrameTimer; - #ifdef JACK_MONITOR JackEngineProfiling fProfiler; #endif diff --git a/common/JackTransportEngine.h b/common/JackTransportEngine.h index e00a3138..17701c28 100644 --- a/common/JackTransportEngine.h +++ b/common/JackTransportEngine.h @@ -101,10 +101,10 @@ class SERVER_EXPORT JackTransportEngine : public JackAtomicArrayState