You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The InitTables method of Dosbox to initialize global data has a defect when using the emulator on multiple threads.
Description of the problem:
have 2 threads doing Init() each around the same time
T1 has entered InitTables(), has set doneTables = true
T2 takes over, InitTables() skips because of doneTables flag
T2 generates bad audio because tables are not filled
Also, there must be a synchronization to ensure correct sequencing of read and write.
Mutex will be fine.
(EDIT I don't use several threads in the worker for measuring so it's not affected; but needed for libADLMIDI's genadldata and I'll copy the changes here)
The text was updated successfully, but these errors were encountered:
The
InitTables
method of Dosbox to initialize global data has a defect when using the emulator on multiple threads.Description of the problem:
Init()
each around the same timeInitTables()
, has set doneTables = trueInitTables()
skips because ofdoneTables
flagAlso, there must be a synchronization to ensure correct sequencing of read and write.
Mutex will be fine.
(EDIT I don't use several threads in the worker for measuring so it's not affected; but needed for libADLMIDI's genadldata and I'll copy the changes here)
The text was updated successfully, but these errors were encountered: