From 60c7c776b4bfa605c77cd4aa503e9d490b56a21c Mon Sep 17 00:00:00 2001 From: David Reid Date: Sun, 16 Feb 2025 14:59:16 +1000 Subject: [PATCH] PulseAudio: Fix a possible race condition with device init. --- miniaudio.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/miniaudio.h b/miniaudio.h index 8b2d669e..1ebc0152 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -30177,7 +30177,7 @@ static ma_pa_buffer_attr ma_device__pa_buffer_attr_new(ma_uint32 periodSizeInFra static ma_pa_stream* ma_device__pa_stream_new__pulse(ma_device* pDevice, const char* pStreamName, const ma_pa_sample_spec* ss, const ma_pa_channel_map* cmap) { - static int g_StreamCounter = 0; + static ma_atomic_uint32 g_StreamCounter = { 0 }; char actualStreamName[256]; if (pStreamName != NULL) { @@ -30186,9 +30186,9 @@ static ma_pa_stream* ma_device__pa_stream_new__pulse(ma_device* pDevice, const c const char* pBaseName = "miniaudio:"; size_t baseNameLen = strlen(pBaseName); ma_strcpy_s(actualStreamName, sizeof(actualStreamName), pBaseName); - ma_itoa_s(g_StreamCounter, actualStreamName + baseNameLen, sizeof(actualStreamName)-baseNameLen, 10); + ma_itoa_s((int)ma_atomic_uint32_get(&g_StreamCounter), actualStreamName + baseNameLen, sizeof(actualStreamName)-baseNameLen, 10); } - g_StreamCounter += 1; + ma_atomic_uint32_fetch_add(&g_StreamCounter, 1); return ((ma_pa_stream_new_proc)pDevice->pContext->pulse.pa_stream_new)((ma_pa_context*)pDevice->pulse.pPulseContext, actualStreamName, ss, cmap); }