Skip to content

Commit dfc23f0

Browse files
FEATURE: Checking for port used before starting server session
1 parent fc72907 commit dfc23f0

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

src/ansys/edb/core/session.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -469,8 +469,7 @@ def launch_session(ansys_em_root, port_num=None):
469469
ip_address = None # remote launch is not supported yet
470470

471471
try:
472-
MOD.current_session = _Session(ip_address, port_num, ansys_em_root)
473-
MOD.current_session.connect()
472+
_ensure_session(ansys_em_root, port_num, ip_address)
474473
return MOD.current_session
475474
except Exception as e: # noqa
476475
if MOD.current_session is not None:
@@ -504,8 +503,7 @@ def session(ansys_em_root, port_num, ip_address=None):
504503
>>> # program goes here
505504
"""
506505
try:
507-
MOD.current_session = _Session(ip_address, port_num, ansys_em_root)
508-
MOD.current_session.connect()
506+
_ensure_session(ansys_em_root, port_num, ip_address)
509507
yield
510508
except EDBSessionException:
511509
raise
@@ -553,3 +551,23 @@ def get_variable_server_stub():
553551
VariableServerServiceStub
554552
"""
555553
return StubAccessor(StubType.variable_server).__get__()
554+
555+
556+
def _ensure_session(ansys_em_root, port_num, ip_address):
557+
"""Check for a running local session and create one if it doesn't exist.
558+
559+
Parameters
560+
----------
561+
ansys_em_root : str
562+
Directory where the ``EDB_RPC_Server.exe`` file is installed.
563+
port_num : int
564+
Port number to listen on.
565+
ip_address : str, default: None
566+
IP address where the server executable file is running.
567+
"""
568+
if MOD.current_session is not None:
569+
if MOD.current_session.port_num != port_num:
570+
raise EDBSessionException(ErrorCode.STARTUP_MULTI_SESSIONS)
571+
else:
572+
MOD.current_session = _Session(ip_address, port_num, ansys_em_root)
573+
MOD.current_session.connect()

0 commit comments

Comments
 (0)