diff --git a/pandora-box.py b/pandora-box.py index 85f7710..617732e 100755 --- a/pandora-box.py +++ b/pandora-box.py @@ -453,10 +453,10 @@ class PandoraBox: time.sleep(0.01) # update status - self._log_msg( - f'Scan {file} ' - f'[{self._human_readable_size(file_size)}] ' - "." * (int(time.time() - file_scan_start_time) // 4)) + # self._log_msg( + # f'Scan {file} ' + # f'[{self._human_readable_size(file_size)}] ' + # "." * (int(time.time() - file_scan_start_time))) loop += 1 file_scan_end_time = time.time() diff --git a/tests/thread.py b/tests/thread.py new file mode 100755 index 0000000..2845b22 --- /dev/null +++ b/tests/thread.py @@ -0,0 +1,67 @@ +#!/usr/bin/python3 + +import queue +import threading +import time + + +exitFlag = 0 + + +class myThread (threading.Thread): + def __init__(self, threadID, name, q): + threading.Thread.__init__(self) + self.threadID = threadID + self.name = name + self.q = q + + def run(self): + print("Starting " + self.name) + process_data(self.name, self.q) + print("Exiting " + self.name) + + +def process_data(threadName, q): + while not exitFlag: + queueLock.acquire() + if not workQueue.empty(): + data = q.get() + queueLock.release() + print("%s processing %s" % (threadName, data)) + else: + queueLock.release() + time.sleep(1) + + +threadList = ["Thread-1", "Thread-2"] +nameList = ["One", "Two", "Three", "Four", "Five", "Six", 'Seven'] +queueLock = threading.Lock() +workQueue = queue.Queue(10) +threads = [] +threadID = 1 + + +# Create new threads +for tName in threadList: + thread = myThread(threadID, tName, workQueue) + thread.start() + threads.append(thread) + threadID += 1 + +# Fill the queue +queueLock.acquire() +for word in nameList: + workQueue.put(word) +queueLock.release() + +# Wait for queue to empty +while not workQueue.empty(): + pass + +# Notify threads it's time to exit +exitFlag = 1 + +# Wait for all threads to complete +for t in threads: + t.join() +print("Exiting Main Thread")