Launch minode in Main()

This commit is contained in:
Dmitri Bogomolov 2021-08-02 20:41:21 +03:00
parent dff04be7bc
commit 3c870f6f8c
Signed by untrusted user: g1itch
GPG Key ID: 720A756F18DEED13
2 changed files with 31 additions and 1 deletions

View File

@ -21,6 +21,7 @@ app_dir = pathmagic.setup()
import depends
depends.check_dependencies()
# import atexit
import ctypes
import getopt
import multiprocessing
@ -220,9 +221,12 @@ class Main(object):
if os.getenv('BITMESSAGE_HYBRID'): # use objqueue of an external app
import queues
from tests import queue
from tests import launcher, queue
state.enableNetwork = False
minode = launcher.MinodeProcess()
minode.start()
# atexit.register(minode.stop)
queues.objectProcessorQueue = queue.ObjQueue()
set_thread_name("PyBitmessage")

26
src/tests/launcher.py Normal file
View File

@ -0,0 +1,26 @@
"""Launching an external app with the network queue"""
import atexit
import signal
import subprocess
class MinodeProcess(object):
_process_cmd = [
'minode', '--no-incoming', '--msg-queue']
def __init__(self, port=8444, connection_limit=4):
self.port = str(port)
self.connection_limit = str(connection_limit)
def start(self):
cmd = self._process_cmd + [
'-p', self.port,
'--connection-limit', self.connection_limit
]
self.process = subprocess.Popen(cmd, stderr=subprocess.STDOUT)
atexit.register(self.stop)
def stop(self):
self.process.send_signal(signal.SIGTERM)
self.process.wait(10)