Skip to content

Commit 2da6bb0

Browse files
committed
Eliminate TcpPortDispatcher and port ranges
Now this functionality is not needed anymore due to added free port auto resolving mechanism. Part of #141
1 parent a47569b commit 2da6bb0

File tree

1 file changed

+4
-41
lines changed

1 file changed

+4
-41
lines changed

dispatcher.py

Lines changed: 4 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -46,35 +46,6 @@
4646
from listeners import StatisticsWatcher
4747

4848

49-
class TcpPortDispatcher:
50-
""" Helper class holds available and occupied TCP port ranges. This ranges
51-
intended to distributes between workers.
52-
"""
53-
def __init__(self, range_count):
54-
lowest_port = 3000
55-
highest_port = 59999
56-
port_count = highest_port - lowest_port + 1
57-
range_size = port_count // range_count
58-
59-
self.available_ranges = set()
60-
for i in range(range_count):
61-
start_port = lowest_port + i * range_size
62-
end_port = start_port + range_size - 1
63-
tcp_port_range = (start_port, end_port)
64-
self.available_ranges.add(tcp_port_range)
65-
66-
self.acquired_ranges = dict()
67-
68-
def acquire_range(self, _id):
69-
tcp_port_range = self.available_ranges.pop()
70-
self.acquired_ranges[_id] = tcp_port_range
71-
return tcp_port_range
72-
73-
def release_range(self, _id):
74-
tcp_port_range = self.acquired_ranges.pop(_id)
75-
self.available_ranges.add(tcp_port_range)
76-
77-
7849
class Dispatcher:
7950
"""Run specified count of worker processes ('max_workers_cnt' arg), pass
8051
task IDs (via 'task_queue'), receive results and output (via
@@ -136,8 +107,6 @@ def __init__(self, task_groups, max_workers_cnt, randomize):
136107
self.worker_id_to_pid = dict()
137108

138109
self.randomize = randomize
139-
self.tcp_port_dispatcher = TcpPortDispatcher(
140-
range_count=max_workers_cnt)
141110

142111
def terminate_all_workers(self):
143112
for process in self.processes:
@@ -235,10 +204,7 @@ def add_worker(self):
235204
# find_nonempty_task_queue_disp()
236205
if self.workers_cnt >= self.max_workers_cnt:
237206
return False
238-
tcp_port_range = self.tcp_port_dispatcher.acquire_range(
239-
self.worker_next_id)
240-
process = task_queue_disp.add_worker(self.worker_next_id,
241-
tcp_port_range)
207+
process = task_queue_disp.add_worker(self.worker_next_id)
242208
self.processes.append(process)
243209
self.pids.append(process.pid)
244210
self.pid_to_worker_id[process.pid] = self.worker_next_id
@@ -255,7 +221,6 @@ def del_worker(self, worker_id):
255221
task_queue_disp = self.get_task_queue_disp(worker_id)
256222
task_queue_disp.del_worker(worker_id)
257223
self.workers_cnt -= 1
258-
self.tcp_port_dispatcher.release_range(worker_id)
259224

260225
self.pids.remove(pid)
261226
del self.worker_id_to_pid[worker_id]
@@ -412,24 +377,22 @@ def __init__(self, key, task_group, randomize):
412377
self.done = False
413378
self.done_task_ids = set()
414379

415-
def _run_worker(self, worker_id, tcp_port_range):
380+
def _run_worker(self, worker_id):
416381
"""Entry function for worker processes."""
417382
os.environ['TEST_RUN_WORKER_ID'] = str(worker_id)
418-
os.environ['TEST_RUN_TCP_PORT_START'] = str(tcp_port_range[0])
419-
os.environ['TEST_RUN_TCP_PORT_END'] = str(tcp_port_range[1])
420383
color_stdout.queue = self.result_queue
421384
worker = self.gen_worker(worker_id)
422385
sampler.set_queue(self.result_queue, worker_id, worker.name)
423386
worker.run_all(self.task_queue, self.result_queue)
424387

425-
def add_worker(self, worker_id, tcp_port_range):
388+
def add_worker(self, worker_id):
426389
# Note: each of our workers should consume only one None, but for the
427390
# case of abnormal circumstances we listen for processes termination
428391
# (method 'check_for_dead_processes') and for time w/o output from
429392
# workers (class 'HangWatcher').
430393
self.task_queue.put(None) # 'stop worker' marker
431394

432-
entry = functools.partial(self._run_worker, worker_id, tcp_port_range)
395+
entry = functools.partial(self._run_worker, worker_id)
433396

434397
self.worker_ids.add(worker_id)
435398
process = multiprocessing.Process(target=entry)

0 commit comments

Comments
 (0)