From 5f95a82e8d0f4bd4d4a7d2486f0f28123cf0be88 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Thu, 14 May 2020 19:06:29 +0300
Subject: [PATCH] Fix for filestream reset race

---
 components/streams/src/filestream.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/components/streams/src/filestream.cpp b/components/streams/src/filestream.cpp
index 5ae915fdf..2afe275ba 100644
--- a/components/streams/src/filestream.cpp
+++ b/components/streams/src/filestream.cpp
@@ -344,6 +344,7 @@ bool File::begin(bool dorun) {
 }
 
 bool File::end() {
+	UNIQUE_LOCK(mutex_, lk);
 	if (!active_) return false;
 	active_ = false;
 	timer_.cancel();
@@ -366,6 +367,10 @@ bool File::end() {
 
 void File::reset() {
 	UNIQUE_LOCK(mutex_, lk);
+
+	// TODO: Find a better solution
+	while (jobs_ > 0) std::this_thread::sleep_for(std::chrono::milliseconds(2));
+
 	data_.clear();
 	buffer_in_.reset();
 	buffer_in_.remove_nonparsed_buffer();
-- 
GitLab