summaryrefslogtreecommitdiff
path: root/servers/audio_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/audio_server.cpp')
-rw-r--r--servers/audio_server.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp
index abf351135a..caee5f5db5 100644
--- a/servers/audio_server.cpp
+++ b/servers/audio_server.cpp
@@ -1137,27 +1137,28 @@ void *AudioServer::audio_data_alloc(uint32_t p_data_len, const uint8_t *p_from_d
copymem(ad, p_from_data, p_data_len);
}
- audio_data_lock->lock();
- audio_data[ad] = p_data_len;
- audio_data_total_mem += p_data_len;
- audio_data_max_mem = MAX(audio_data_total_mem, audio_data_max_mem);
- audio_data_lock->unlock();
+ {
+ MutexLock lock(audio_data_lock);
+
+ audio_data[ad] = p_data_len;
+ audio_data_total_mem += p_data_len;
+ audio_data_max_mem = MAX(audio_data_total_mem, audio_data_max_mem);
+ }
return ad;
}
void AudioServer::audio_data_free(void *p_data) {
- audio_data_lock->lock();
+ MutexLock lock(audio_data_lock);
+
if (!audio_data.has(p_data)) {
- audio_data_lock->unlock();
ERR_FAIL();
}
audio_data_total_mem -= audio_data[p_data];
audio_data.erase(p_data);
memfree(p_data);
- audio_data_lock->unlock();
}
size_t AudioServer::audio_data_get_total_memory_usage() const {
@@ -1399,7 +1400,6 @@ AudioServer::AudioServer() {
singleton = this;
audio_data_total_mem = 0;
audio_data_max_mem = 0;
- audio_data_lock = Mutex::create();
mix_frames = 0;
channel_count = 0;
to_mix = 0;
@@ -1413,7 +1413,6 @@ AudioServer::AudioServer() {
AudioServer::~AudioServer() {
- memdelete(audio_data_lock);
singleton = NULL;
}