From a1a735b678051d8d973df8ef14944c597d0e3e07 Mon Sep 17 00:00:00 2001 From: Matt Montag Date: Sun, 2 Jun 2019 13:47:09 -0700 Subject: Update emulators enabled check Add all emulators to the preprocessor directive that ensures at least one is enabled. --- src/adlmidi_opl3.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp index a7bffc3..0df9d4d 100644 --- a/src/adlmidi_opl3.cpp +++ b/src/adlmidi_opl3.cpp @@ -29,7 +29,10 @@ #ifdef ADLMIDI_HW_OPL static const unsigned OPLBase = 0x388; #else -# if defined(ADLMIDI_DISABLE_NUKED_EMULATOR) && defined(ADLMIDI_DISABLE_DOSBOX_EMULATOR) +# if defined(ADLMIDI_DISABLE_NUKED_EMULATOR) && \ + defined(ADLMIDI_DISABLE_DOSBOX_EMULATOR) && \ + defined(ADLMIDI_DISABLE_OPAL_EMULATOR) && \ + defined(ADLMIDI_DISABLE_JAVA_EMULATOR) # error "No emulators enabled. You must enable at least one emulator to use this library!" # endif -- cgit v1.2.3 From 35c7fd9d8320a9d97723591eb6ee48974f6be528 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Mon, 1 Jul 2019 17:55:12 +0200 Subject: dosbox: thread-safe global initialization --- src/chips/dosbox/dbopl.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/chips/dosbox/dbopl.cpp b/src/chips/dosbox/dbopl.cpp index d1ab82f..5b4bf53 100644 --- a/src/chips/dosbox/dbopl.cpp +++ b/src/chips/dosbox/dbopl.cpp @@ -1507,11 +1507,15 @@ void Chip::Setup( Bit32u rate ) { } } -static bool doneTables = false; +static volatile bool doneTables = false; +static Mutex mutexTables; + void InitTables( void ) { if ( doneTables ) return; - doneTables = true; + MutexHolder lock( mutexTables ); + if ( doneTables ) + return; #if ( DBOPL_WAVE == WAVE_HANDLER ) || ( DBOPL_WAVE == WAVE_TABLELOG ) //Exponential volume table, same as the real adlib for ( int i = 0; i < 256; i++ ) { @@ -1661,6 +1665,7 @@ void InitTables( void ) { } } #endif + doneTables = true; } Bit32u Handler::WriteAddr( Bit32u port, Bit8u val ) { -- cgit v1.2.3