Implement work-stealing scheduler (#862)

Closes #858
This commit is contained in:
Aleksandr Mezin
2023-01-11 13:38:57 +02:00
committed by GitHub
parent 9b0b5b1495
commit d1dfad3e92
10 changed files with 638 additions and 26 deletions

View File

@@ -300,6 +300,9 @@ class WorkerController:
def send_runtest_all(self):
self.sendcommand("runtests_all")
def send_steal(self, indices):
self.sendcommand("steal", indices=indices)
def shutdown(self):
if not self._down:
try:
@@ -359,6 +362,8 @@ class WorkerController:
self.notify_inproc(eventname, node=self, ids=kwargs["ids"])
elif eventname == "runtest_protocol_complete":
self.notify_inproc(eventname, node=self, **kwargs)
elif eventname == "unscheduled":
self.notify_inproc(eventname, node=self, **kwargs)
elif eventname == "logwarning":
self.notify_inproc(
eventname,