mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-20 18:09:48 +00:00
network: add_job
This commit is contained in:
parent
e573c6d385
commit
8fa6bd2aac
1 changed files with 10 additions and 7 deletions
|
@ -188,7 +188,6 @@ class Network(PrintError):
|
||||||
self.default_server = pick_random_server()
|
self.default_server = pick_random_server()
|
||||||
|
|
||||||
self.main_taskgroup = None
|
self.main_taskgroup = None
|
||||||
self._jobs = []
|
|
||||||
|
|
||||||
# locks
|
# locks
|
||||||
self.restart_lock = asyncio.Lock()
|
self.restart_lock = asyncio.Lock()
|
||||||
|
@ -791,9 +790,7 @@ class Network(PrintError):
|
||||||
with open(path, 'w', encoding='utf-8') as f:
|
with open(path, 'w', encoding='utf-8') as f:
|
||||||
f.write(json.dumps(cp, indent=4))
|
f.write(json.dumps(cp, indent=4))
|
||||||
|
|
||||||
async def _start(self, jobs=None):
|
async def _start(self):
|
||||||
if jobs is None: jobs = self._jobs
|
|
||||||
self._jobs = jobs
|
|
||||||
assert not self.main_taskgroup
|
assert not self.main_taskgroup
|
||||||
self.main_taskgroup = SilentTaskGroup()
|
self.main_taskgroup = SilentTaskGroup()
|
||||||
|
|
||||||
|
@ -802,7 +799,7 @@ class Network(PrintError):
|
||||||
await self._init_headers_file()
|
await self._init_headers_file()
|
||||||
async with self.main_taskgroup as group:
|
async with self.main_taskgroup as group:
|
||||||
await group.spawn(self._maintain_sessions())
|
await group.spawn(self._maintain_sessions())
|
||||||
[await group.spawn(job) for job in jobs]
|
[await group.spawn(job) for job in self._jobs]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc(file=sys.stderr)
|
traceback.print_exc(file=sys.stderr)
|
||||||
raise e
|
raise e
|
||||||
|
@ -818,8 +815,14 @@ class Network(PrintError):
|
||||||
self._start_interface(self.default_server)
|
self._start_interface(self.default_server)
|
||||||
self.trigger_callback('network_updated')
|
self.trigger_callback('network_updated')
|
||||||
|
|
||||||
def start(self, jobs=None):
|
def start(self, jobs: List=None):
|
||||||
asyncio.run_coroutine_threadsafe(self._start(jobs=jobs), self.asyncio_loop)
|
self._jobs = jobs or []
|
||||||
|
asyncio.run_coroutine_threadsafe(self._start(), self.asyncio_loop)
|
||||||
|
|
||||||
|
async def add_job(self, job):
|
||||||
|
async with self.restart_lock:
|
||||||
|
self._jobs.append(job)
|
||||||
|
await self.main_taskgroup.spawn(job)
|
||||||
|
|
||||||
async def _stop(self, full_shutdown=False):
|
async def _stop(self, full_shutdown=False):
|
||||||
self.print_error("stopping network")
|
self.print_error("stopping network")
|
||||||
|
|
Loading…
Add table
Reference in a new issue