Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2015-01-28 21:45:16 +0300
committerAntony Riakiotakis <kalast@gmail.com>2015-01-28 21:45:29 +0300
commit773d85ab320b0a115ef23321435649e1a8a1ef63 (patch)
tree265efab63d8f46ce971262229ff53c5e4992dd83 /source/blender/editors/space_sequencer/sequencer_draw.c
parent424100cecbb202004e1687d5066b2c88e7a58f58 (diff)
Based on Sergey's suggestion, use spinlocks for threaded loading of
waveforms.
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_draw.c')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_draw.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 6d7e4ad1d8d..3be6cd79504 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -70,6 +70,7 @@
#include "WM_api.h"
+#include "MEM_guardedalloc.h"
/* own include */
#include "sequencer_intern.h"
@@ -200,23 +201,25 @@ static void drawseqwave(const bContext *C, SpaceSeq *sseq, Scene *scene, Sequenc
SoundWaveform *waveform;
- if (!sound->mutex)
- sound->mutex = BLI_mutex_alloc();
+ if (!sound->spinlock) {
+ sound->spinlock = MEM_mallocN(sizeof(SpinLock), "sound_spinlock");
+ BLI_spin_init(sound->spinlock);
+ }
- BLI_mutex_lock(sound->mutex);
+ BLI_spin_lock(sound->spinlock);
if (!seq->sound->waveform) {
if (!(sound->flags & SOUND_FLAGS_WAVEFORM_LOADING)) {
/* prevent sounds from reloading */
seq->sound->flags |= SOUND_FLAGS_WAVEFORM_LOADING;
- BLI_mutex_unlock(sound->mutex);
+ BLI_spin_unlock(sound->spinlock);
sequencer_preview_add_sound(C, seq);
}
else {
- BLI_mutex_unlock(sound->mutex);
+ BLI_spin_unlock(sound->spinlock);
}
return; /* nothing to draw */
}
- BLI_mutex_unlock(sound->mutex);
+ BLI_spin_unlock(sound->spinlock);
waveform = seq->sound->waveform;