Skip to content
Snippets Groups Projects
Commit 9c8d6e01 authored by Sybren A. Stüvel's avatar Sybren A. Stüvel
Browse files

Properly fixed futures not being waited for.

parent b152067a
No related branches found
No related tags found
No related merge requests found
...@@ -444,7 +444,7 @@ class FlamencoWorker: ...@@ -444,7 +444,7 @@ class FlamencoWorker:
elif self._push_act_to_manager is None or self._push_act_to_manager.done(): elif self._push_act_to_manager is None or self._push_act_to_manager.done():
# Schedule a future push to manager. # Schedule a future push to manager.
self._push_act_to_manager = asyncio.ensure_future( self._push_act_to_manager = asyncio.ensure_future(
await self.push_to_manager(delay=self.push_act_max_interval)) self.push_to_manager(delay=self.push_act_max_interval))
async def register_log(self, log_entry, *fmt_args): async def register_log(self, log_entry, *fmt_args):
"""Registers a log entry, and possibly sends all queued log entries to upstream Manager. """Registers a log entry, and possibly sends all queued log entries to upstream Manager.
...@@ -474,7 +474,7 @@ class FlamencoWorker: ...@@ -474,7 +474,7 @@ class FlamencoWorker:
elif self._push_log_to_manager is None or self._push_log_to_manager.done(): elif self._push_log_to_manager is None or self._push_log_to_manager.done():
# Schedule a future push to manager. # Schedule a future push to manager.
self._push_log_to_manager = asyncio.ensure_future( self._push_log_to_manager = asyncio.ensure_future(
await self.push_to_manager(delay=self.push_log_max_interval)) self.push_to_manager(delay=self.push_log_max_interval))
def output_produced(self, *paths: typing.Union[str, pathlib.PurePath]): def output_produced(self, *paths: typing.Union[str, pathlib.PurePath]):
"""Registers a produced output (e.g. rendered frame) with the manager. """Registers a produced output (e.g. rendered frame) with the manager.
......
...@@ -43,6 +43,18 @@ class AbstractFWorkerTest(AbstractWorkerTest): ...@@ -43,6 +43,18 @@ class AbstractFWorkerTest(AbstractWorkerTest):
) )
def tearDown(self): def tearDown(self):
if self.worker._push_act_to_manager is not None:
try:
self.asyncio_loop.run_until_complete(self.worker._push_act_to_manager)
except asyncio.CancelledError:
pass
if self.worker._push_log_to_manager is not None:
try:
self.asyncio_loop.run_until_complete(self.worker._push_log_to_manager)
except asyncio.CancelledError:
pass
self.shutdown_future.cancel() self.shutdown_future.cancel()
self.worker.shutdown() self.worker.shutdown()
self.asyncio_loop.close() self.asyncio_loop.close()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment