add commandbuffer

This commit is contained in:
stalbe_j
2023-04-17 13:48:19 +02:00
parent 16f149a937
commit 00f06b5d85

34
grum/cmdbuf.py Normal file
View File

@ -0,0 +1,34 @@
from queue import Queue
from threading import Thread
class CommandBuffer:
def __init__(self):
self.cmds = Queue()
self.thread = None
self.running = False
def _run(self):
self.running = True
while self.running:
c = self.cmds.get()
func, args, kwargs = c
print("run:", func, args, kwargs.keys())
func(*args, **kwargs)
def start(self):
self.thread = thread = Thread(target=self._run)
thread.start()
def stop(self):
self.running = False
def add(self, func, *args, **kwargs):
print("add:", func, args, kwargs.keys())
c = (func, args, kwargs)
self.cmds.put(c)