46c400fb00
related: rhbz#2059289
68 lines
2.3 KiB
Diff
68 lines
2.3 KiB
Diff
From 120bad475468b0a2e2aa2effbd1e51dd04621ce9 Mon Sep 17 00:00:00 2001
|
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
Date: Sat, 14 May 2022 18:54:32 +0100
|
|
Subject: [PATCH] scan: Remove condition variable
|
|
|
|
This was copied in from the readahead filter code, but is not actually
|
|
needed in this filter because it never has to sleep waiting for a
|
|
command.
|
|
|
|
Fixes: commit 65c20a09ceacb4431986a2982f2c2e746df63fcb
|
|
(cherry picked from commit 43ad586698347997cdfa1bd56bfed0292f89f134)
|
|
---
|
|
filters/scan/scan.c | 6 ------
|
|
filters/scan/scan.h | 1 -
|
|
2 files changed, 7 deletions(-)
|
|
|
|
diff --git a/filters/scan/scan.c b/filters/scan/scan.c
|
|
index ac5b18d2..8a966577 100644
|
|
--- a/filters/scan/scan.c
|
|
+++ b/filters/scan/scan.c
|
|
@@ -136,9 +136,6 @@ send_command_to_background_thread (struct bgthread_ctrl *ctrl,
|
|
ACQUIRE_LOCK_FOR_CURRENT_SCOPE (&ctrl->lock);
|
|
if (command_queue_append (&ctrl->cmds, cmd) == -1)
|
|
return -1;
|
|
- /* Signal the thread if it could be sleeping on an empty queue. */
|
|
- if (ctrl->cmds.len == 1)
|
|
- pthread_cond_signal (&ctrl->cond);
|
|
return 0;
|
|
}
|
|
|
|
@@ -199,13 +196,11 @@ scan_prepare (nbdkit_next *next, void *handle, int readonly)
|
|
/* Create the background thread. */
|
|
h->ctrl.cmds = (command_queue) empty_vector;
|
|
pthread_mutex_init (&h->ctrl.lock, NULL);
|
|
- pthread_cond_init (&h->ctrl.cond, NULL);
|
|
|
|
err = pthread_create (&h->thread, NULL, scan_thread, &h->ctrl);
|
|
if (err != 0) {
|
|
errno = err;
|
|
nbdkit_error ("pthread_create: %m");
|
|
- pthread_cond_destroy (&h->ctrl.cond);
|
|
pthread_mutex_destroy (&h->ctrl.lock);
|
|
return -1;
|
|
}
|
|
@@ -227,7 +222,6 @@ scan_finalize (nbdkit_next *next, void *handle)
|
|
|
|
send_command_to_background_thread (&h->ctrl, quit_cmd);
|
|
pthread_join (h->thread, NULL);
|
|
- pthread_cond_destroy (&h->ctrl.cond);
|
|
pthread_mutex_destroy (&h->ctrl.lock);
|
|
command_queue_reset (&h->ctrl.cmds);
|
|
h->running = false;
|
|
diff --git a/filters/scan/scan.h b/filters/scan/scan.h
|
|
index 7ff39310..98c0228b 100644
|
|
--- a/filters/scan/scan.h
|
|
+++ b/filters/scan/scan.h
|
|
@@ -54,7 +54,6 @@ DEFINE_VECTOR_TYPE(command_queue, struct command);
|
|
struct bgthread_ctrl {
|
|
command_queue cmds; /* Command queue. */
|
|
pthread_mutex_t lock; /* Lock for queue. */
|
|
- pthread_cond_t cond; /* Condition queue size 0 -> 1. */
|
|
nbdkit_next *next; /* For sending cache operations. */
|
|
};
|
|
|
|
--
|
|
2.31.1
|
|
|