Skip to content

Commit b43b009

Browse files
committed
clean
1 parent 239def9 commit b43b009

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/xdist/scheduler/loadscope.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ def add_node(self, node: WorkerController) -> None:
162162
"""
163163
assert node not in self.assigned_work
164164
self.assigned_work[node] = {}
165+
# sort by gw id
166+
self.assigned_work = dict(sorted(self.assigned_work.items(), key=lambda item: item[0].gateway.id))
165167

166168
def remove_node(self, node: WorkerController) -> str | None:
167169
"""Remove a node from the scheduler.

src/xdist/workermanage.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
from collections.abc import Sequence
4+
from concurrent.futures import ThreadPoolExecutor
45
import enum
56
import fnmatch
67
import os
@@ -94,15 +95,24 @@ def setup_nodes(
9495
) -> list[WorkerController]:
9596
self.config.hook.pytest_xdist_setupnodes(config=self.config, specs=self.specs)
9697
self.trace("setting up nodes")
97-
return [self.setup_node(spec, putevent) for spec in self.specs]
98+
with ThreadPoolExecutor(max_workers=len(self.specs)) as executor:
99+
futs = [
100+
executor.submit(self.setup_node, spec, putevent, idx)
101+
for idx, spec in enumerate(self.specs)
102+
]
103+
return [f.result() for f in futs]
104+
# return [self.setup_node(spec, putevent) for spec in self.specs]
98105

99106
def setup_node(
100107
self,
101108
spec: execnet.XSpec,
102109
putevent: Callable[[tuple[str, dict[str, Any]]], None],
110+
idx: int | None = None,
103111
) -> WorkerController:
104112
if getattr(spec, "execmodel", None) != "main_thread_only":
105113
spec = execnet.XSpec(f"execmodel=main_thread_only//{spec}")
114+
# if idx is not None:
115+
# spec = execnet.XSpec(f"{spec}//id=gw{idx}")
106116
gw = self.group.makegateway(spec)
107117
self.config.hook.pytest_xdist_newgateway(gateway=gw)
108118
self.rsync_roots(gw)

0 commit comments

Comments
 (0)