Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[#256] Port number 65535 is valid for using#268

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletionstestgres/impl/port_manager__generic.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -9,19 +9,31 @@


class PortManager__Generic(PortManager):
_C_MIN_PORT_NUMBER = 1024
_C_MAX_PORT_NUMBER = 65535

_os_ops: OsOperations
_guard: object
# TODO: is there better to use bitmap fot _available_ports?
_available_ports: typing.Set[int]
_reserved_ports: typing.Set[int]

def __init__(self, os_ops: OsOperations):
assert __class__._C_MIN_PORT_NUMBER <= __class__._C_MAX_PORT_NUMBER

assert os_ops is not None
assert isinstance(os_ops, OsOperations)
self._os_ops = os_ops
self._guard = threading.Lock()
self._available_ports: typing.Set[int] = set(range(1024, 65535))
self._reserved_ports: typing.Set[int] = set()

self._available_ports = set(
range(__class__._C_MIN_PORT_NUMBER, __class__._C_MAX_PORT_NUMBER + 1)
)
assert len(self._available_ports) == (
(__class__._C_MAX_PORT_NUMBER - __class__._C_MIN_PORT_NUMBER) + 1
)
self._reserved_ports = set()
return

def reserve_port(self) -> int:
assert self._guard is not None
Expand All@@ -35,9 +47,13 @@ def reserve_port(self) -> int:
t = None

for port in sampled_ports:
assert type(port) == int # noqa: E721
assert not (port in self._reserved_ports)
assert port in self._available_ports

assert port >= __class__._C_MIN_PORT_NUMBER
assert port <= __class__._C_MAX_PORT_NUMBER

if not self._os_ops.is_port_free(port):
continue

Expand All@@ -51,6 +67,8 @@ def reserve_port(self) -> int:

def release_port(self, number: int) -> None:
assert type(number) == int # noqa: E721
assert number >= __class__._C_MIN_PORT_NUMBER
assert number <= __class__._C_MAX_PORT_NUMBER

assert self._guard is not None
assert type(self._reserved_ports) == set # noqa: E721
Expand All@@ -62,3 +80,4 @@ def release_port(self, number: int) -> None:
self._reserved_ports.discard(number)
assert not (number in self._reserved_ports)
assert number in self._available_ports
return

[8]ページ先頭

©2009-2025 Movatter.jp