aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/recorder/replay_save.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/recorder/replay_save.c')
-rw-r--r--src/recorder/replay_save.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/recorder/replay_save.c b/src/recorder/replay_save.c
index 6e5bc7b..1d33437 100644
--- a/src/recorder/replay_save.c
+++ b/src/recorder/replay_save.c
@@ -8,7 +8,7 @@
void gsr_replay_save_init(gsr_replay_save *self) {
memset(self, 0, sizeof(*self));
- self->finished = 0;
+ atomic_init(&self->finished, 0);
}
bool gsr_replay_save_is_running(const gsr_replay_save *self) {
@@ -110,7 +110,7 @@ static void* replay_save_thread(void *userdata) {
self->success = success;
gsr_replay_save_cleanup(self);
- self->finished = 1;
+ atomic_store(&self->finished, 1);
return NULL;
}
@@ -123,7 +123,7 @@ bool gsr_replay_save_start(gsr_replay_save *self, AVCodecContext *video_codec_co
self->video_stream_index = video_stream_index;
self->output_filepath[0] = '\0';
self->success = false;
- self->finished = 0;
+ atomic_store(&self->finished, 0);
pthread_mutex_lock(&encoder->replay_mutex);
self->cloned_replay_buffer = gsr_replay_buffer_clone(encoder->replay_buffer);
@@ -193,7 +193,7 @@ static bool gsr_replay_save_finish(gsr_replay_save *self, bool *success, const c
}
bool gsr_replay_save_poll(gsr_replay_save *self, bool *success, const char **output_filepath) {
- if(!self->thread_created || !self->finished)
+ if(!self->thread_created || !atomic_load(&self->finished))
return false;
return gsr_replay_save_finish(self, success, output_filepath);