aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-10-19 14:44:55 +0200
committerdec05eba <dec05eba@protonmail.com>2020-10-19 14:44:55 +0200
commit1569d02aa38baa53d5442b3babdbf1a3aaa3aaa0 (patch)
treee2d58b2ad86168c238f996e699097ca1d3991a47 /src/QuickMedia.cpp
parent1ea92d1aa4656160fee3059500c405ce4260bce7 (diff)
Load thumbnails with multiple threads, use sha256 for saving image to path instead of base64 (filename limit is 256 on linux...)
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp20
1 files changed, 3 insertions, 17 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 54af0fa..659e59c 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -380,16 +380,6 @@ namespace QuickMedia {
}
Program::~Program() {
- if(upscale_image_action != UpscaleImageAction::NO && running) {
- running = false;
- {
- std::unique_lock<std::mutex> lock(image_upscale_mutex);
- image_upscale_cv.notify_one();
- }
- image_upscale_thead.join();
- } else {
- running = false;
- }
if(matrix)
delete matrix;
if(disp)
@@ -506,15 +496,12 @@ namespace QuickMedia {
return -2;
}
- running = true;
image_upscale_thead = std::thread([this]{
CopyOp copy_op;
- while(running) {
+ while(true) {
{
std::unique_lock<std::mutex> lock(image_upscale_mutex);
- while(images_to_upscale.empty() && running) image_upscale_cv.wait(lock);
- if(!running)
- break;
+ while(images_to_upscale.empty()) image_upscale_cv.wait(lock);
copy_op = images_to_upscale.front();
images_to_upscale.pop_front();
}
@@ -539,8 +526,7 @@ namespace QuickMedia {
file_overwrite(copy_op.destination.data.c_str(), "1");
}
});
- } else {
- running = true;
+ image_upscale_thead.detach();
}
if(strcmp(plugin_name, "file-manager") != 0 && start_dir) {