in pypaimon/py4j/java_gateway.py [0:0]
def launch_gateway():
# type: () -> JavaGateway
"""
launch jvm gateway
"""
# Create a temporary directory where the gateway server should write the connection information.
conn_info_dir = tempfile.mkdtemp()
try:
fd, conn_info_file = tempfile.mkstemp(dir=conn_info_dir)
os.close(fd)
os.unlink(conn_info_file)
env = dict(os.environ)
env[constants.PYPAIMON_CONN_INFO_PATH] = conn_info_file
p = launch_gateway_server_process(env)
while not p.poll() and not os.path.isfile(conn_info_file):
time.sleep(0.1)
if not os.path.isfile(conn_info_file):
stderr_info = p.stderr.read().decode('utf-8')
raise RuntimeError(
"Java gateway process exited before sending its port number.\nStderr:\n"
+ stderr_info
)
with open(conn_info_file, "rb") as info:
gateway_port = struct.unpack("!I", info.read(4))[0]
finally:
shutil.rmtree(conn_info_dir)
# Connect to the gateway
gateway = JavaGateway(
gateway_parameters=GatewayParameters(port=gateway_port, auto_convert=True),
callback_server_parameters=CallbackServerParameters(
port=0, daemonize=True, daemonize_connections=True))
return gateway