[lvm-devel] master - lvmdbusd: Remove the periodic timer task

tasleson tasleson at fedoraproject.org
Thu Nov 3 23:43:03 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=461d340bd75556ef1f9fcda7ec29ebd5f044d861
Commit:        461d340bd75556ef1f9fcda7ec29ebd5f044d861
Parent:        ee0c9e7b2306cada41defedd0e5006b0ee2f3a21
Author:        Tony Asleson <tasleson at redhat.com>
AuthorDate:    Thu Nov 3 18:27:22 2016 -0500
Committer:     Tony Asleson <tasleson at redhat.com>
CommitterDate: Thu Nov 3 18:38:10 2016 -0500

lvmdbusd: Remove the periodic timer task

This code is no longer needed because the back ground task has been
removed.  Will add back if we change the design and end up utilizing
multiple worker threads.
---
 daemons/lvmdbusd/background.py |   18 ------------------
 daemons/lvmdbusd/main.py       |    8 +++-----
 2 files changed, 3 insertions(+), 23 deletions(-)

diff --git a/daemons/lvmdbusd/background.py b/daemons/lvmdbusd/background.py
index fc92b0c..f4cb539 100644
--- a/daemons/lvmdbusd/background.py
+++ b/daemons/lvmdbusd/background.py
@@ -7,7 +7,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 
-import threading
 import subprocess
 from . import cfg
 from .cmdhandler import options_to_cli_args
@@ -15,9 +14,6 @@ import dbus
 from .utils import pv_range_append, pv_dest_ranges, log_error, log_debug
 import os
 
-_rlock = threading.RLock()
-_thread_list = list()
-
 
 def pv_move_lv_cmd(move_options, lv_full_name,
 					pv_source, pv_source_range, pv_dest_range_list):
@@ -130,17 +126,3 @@ def merge(interface_name, lv_uuid, lv_name, merge_options, job_state):
 		raise dbus.exceptions.DBusException(
 			interface_name,
 			'LV with uuid %s and name %s not present!' % (lv_uuid, lv_name))
-
-
-def background_reaper():
-	with _rlock:
-		num_threads = len(_thread_list) - 1
-		if num_threads >= 0:
-			for i in range(num_threads, -1, -1):
-				_thread_list[i].join(0)
-				if not _thread_list[i].is_alive():
-					log_debug("Reaping thread: %s" % _thread_list[i].name)
-					_thread_list.pop(i)
-	return True
-
-
diff --git a/daemons/lvmdbusd/main.py b/daemons/lvmdbusd/main.py
index 5fe1018..7d10bc3 100644
--- a/daemons/lvmdbusd/main.py
+++ b/daemons/lvmdbusd/main.py
@@ -22,7 +22,6 @@ from . import lvmdb
 from gi.repository import GLib
 from .fetch import load
 from .manager import Manager
-from .background import background_reaper
 import traceback
 import queue
 from . import udevwatch
@@ -64,6 +63,7 @@ def _discard_pending_refreshes():
 
 def process_request():
 	while cfg.run.value != 0:
+		# noinspection PyBroadException
 		try:
 			req = cfg.worker_q.get(True, 5)
 
@@ -156,10 +156,8 @@ def main():
 
 	cfg.db = lvmdb.DataStore(cfg.args.use_json)
 
-	# Periodically call function to reap threads that are created
-	GLib.timeout_add(5000, background_reaper)
-
-	# Using a thread to process requests.
+	# Using a thread to process requests, we cannot hang the dbus library
+	# thread that is handling the dbus interface
 	thread_list.append(threading.Thread(target=process_request))
 
 	cfg.load(refresh=False, emit_signal=False, need_main_thread=False)




More information about the lvm-devel mailing list