Blob Blame History Raw
From 91677241184ab1aa77adadd612fa069d084863ec 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