import collections import time from datetime import datetime from threading import Semaphore, Thread from llm_server import opts from llm_server.integer import ThreadSafeInteger from llm_server.opts import concurrent_gens proompters_1_min = 0 concurrent_semaphore = Semaphore(concurrent_gens) proompts = ThreadSafeInteger(0) start_time = datetime.now() class SemaphoreCheckerThread(Thread): def __init__(self, semaphore): Thread.__init__(self) self.semaphore = semaphore self.values = collections.deque(maxlen=60) self.prev_semaphore_value = self.semaphore._value self.daemon = True def run(self): global proompters_1_min while True: current_semaphore_value = self.semaphore._value if current_semaphore_value < opts.concurrent_gens and current_semaphore_value != self.prev_semaphore_value: self.values.append(1) else: self.values.append(0) self.prev_semaphore_value = current_semaphore_value proompters_1_min = sum(self.values) # print(proompters_1_min) time.sleep(1)