'''Created May 6, 2021 Levi''' from threading import Event from threading import Thread from time import sleep import quick_hotkey_ab # @UnresolvedImport import mentor_keys_ab # @UnresolvedImport import button_keys # @UnresolvedImport import winmnt_C_LOCK # @UnresolvedImport import setfocus # @UnresolvedImport def start_thread(target, args=(), name=""): def thread_function(): while True: try: target(*args) except Exception as e: print(f"Error in {name}: {e}. Restarting...") sleep(1) # Optional: add delay before restart else: break thread = Thread(target=thread_function) thread.start() return thread event1 = Event() # thread1 = Thread(target=quick_hotkey_ab.main) # thread2 = Thread(target=mentor_keys_ab.main) # thread4 = Thread(target=winmnt_C_LOCK.main, args=(event1,)) # # thread5 = Thread(target=button_keys.main) # # thread7 = Thread(target=setfocus.main) # # thread5 = Thread(target=ahk_dec_replace.main, args=(event2,)) if __name__ == '__main__': thread1 = start_thread(quick_hotkey_ab.main, name="quick_hotkey_ab") # thread1.start() print(f'started {quick_hotkey_ab.main.__doc__}') # sleep(0.5) thread2 = start_thread(mentor_keys_ab.main, name="mentor_keys") # thread2.start() print(f'started {mentor_keys_ab.main.__doc__}') # sleep(0.5) thread4 = start_thread(winmnt_C_LOCK.main, args=(event1,), name="winmnt_C_LOCK") # thread4.start() print(f'started {winmnt_C_LOCK.main.__doc__}') # thread5.start() # print(f'started {button_keys.main.__doc__}') # thread7.start() # print(f'started {setfocus.main.__doc__}') # sleep(0.5) # thread5.start() # print(f'started {ahk_dec_replace.main.__doc__}') while True: try: sleep(1) except KeyboardInterrupt: event1.set() # event2.set() thread1.join() print(f'stopped {quick_hotkey_ab.main.__doc__}') # sleep(0.5) thread2.join() print(f'stopped {mentor_keys_ab.main.__doc__}') # sleep(0.5) thread4.join() print(f'stopped {winmnt_C_LOCK.main.__doc__}') # thread5.join() # print(f'stopped {button_keys.main.__doc__}') # thread7.join() # print(f'stopped {setfocus.main.__doc__}') # sleep(0.5) # thread5.join() # print(f'stopped {ahk_dec_replace.main.__doc__}') break