loop: replace use of asyncio.get_event_loop
The behavior of asyncio.get_event_loop() will change in a future Python version. It is deprecated starting Python 3.10. The functions that we can use instead are: * asyncio.new_event_loop() - which creates a new event loop * asyncio.get_running_loop() - which returns the event loop only if it is already running Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
This commit is contained in:
parent
1fbef3354c
commit
f0e5c19ee7
|
@ -62,7 +62,7 @@ class Upload(metaclass=urwid.MetaSignals):
|
||||||
def start(self):
|
def start(self):
|
||||||
self.pipe_r, self.pipe_w = os.pipe()
|
self.pipe_r, self.pipe_w = os.pipe()
|
||||||
fcntl.fcntl(self.pipe_r, fcntl.F_SETFL, os.O_NONBLOCK)
|
fcntl.fcntl(self.pipe_r, fcntl.F_SETFL, os.O_NONBLOCK)
|
||||||
asyncio.get_event_loop().add_reader(self.pipe_r, self._progress)
|
asyncio.get_running_loop().add_reader(self.pipe_r, self._progress)
|
||||||
|
|
||||||
def _progress(self):
|
def _progress(self):
|
||||||
os.read(self.pipe_r, 4096)
|
os.read(self.pipe_r, 4096)
|
||||||
|
@ -75,7 +75,7 @@ class Upload(metaclass=urwid.MetaSignals):
|
||||||
os.write(self.pipe_w, b'x')
|
os.write(self.pipe_w, b'x')
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
asyncio.get_event_loop().remove_reader(self.pipe_r)
|
asyncio.get_running_loop().remove_reader(self.pipe_r)
|
||||||
os.close(self.pipe_w)
|
os.close(self.pipe_w)
|
||||||
os.close(self.pipe_r)
|
os.close(self.pipe_r)
|
||||||
|
|
||||||
|
@ -174,7 +174,7 @@ class ErrorReport(metaclass=urwid.MetaSignals):
|
||||||
_bg_add_info()
|
_bg_add_info()
|
||||||
context.description = "written to " + self.path
|
context.description = "written to " + self.path
|
||||||
else:
|
else:
|
||||||
self._info_task = asyncio.get_event_loop().create_task(add_info())
|
self._info_task = asyncio.get_running_loop().create_task(add_info())
|
||||||
|
|
||||||
async def load(self):
|
async def load(self):
|
||||||
with self._context.child("load"):
|
with self._context.child("load"):
|
||||||
|
@ -432,7 +432,7 @@ class ErrorReporter(object):
|
||||||
if report is not None:
|
if report is not None:
|
||||||
return report
|
return report
|
||||||
|
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
|
|
||||||
await self.client.errors.wait.GET(error_ref)
|
await self.client.errors.wait.GET(error_ref)
|
||||||
|
|
||||||
|
|
|
@ -268,7 +268,7 @@ class SubiquityModel:
|
||||||
|
|
||||||
async def wait_confirmation(self):
|
async def wait_confirmation(self):
|
||||||
if self._confirmation_task is None:
|
if self._confirmation_task is None:
|
||||||
self._confirmation_task = asyncio.get_event_loop().create_task(
|
self._confirmation_task = asyncio.get_running_loop().create_task(
|
||||||
self._confirmation.wait())
|
self._confirmation.wait())
|
||||||
try:
|
try:
|
||||||
await self._confirmation_task
|
await self._confirmation_task
|
||||||
|
|
|
@ -658,11 +658,11 @@ class FilesystemController(SubiquityController, FilesystemManipulator):
|
||||||
await self._probe_task.start()
|
await self._probe_task.start()
|
||||||
|
|
||||||
def start_listening_udev(self):
|
def start_listening_udev(self):
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
loop.add_reader(self._monitor.fileno(), self._udev_event)
|
loop.add_reader(self._monitor.fileno(), self._udev_event)
|
||||||
|
|
||||||
def stop_listening_udev(self):
|
def stop_listening_udev(self):
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
loop.remove_reader(self._monitor.fileno())
|
loop.remove_reader(self._monitor.fileno())
|
||||||
|
|
||||||
def _udev_event(self):
|
def _udev_event(self):
|
||||||
|
@ -670,7 +670,7 @@ class FilesystemController(SubiquityController, FilesystemManipulator):
|
||||||
if cp.returncode != 0:
|
if cp.returncode != 0:
|
||||||
log.debug("waiting 0.1 to let udev event queue settle")
|
log.debug("waiting 0.1 to let udev event queue settle")
|
||||||
self.stop_listening_udev()
|
self.stop_listening_udev()
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
loop.call_later(0.1, self.start_listening_udev)
|
loop.call_later(0.1, self.start_listening_udev)
|
||||||
return
|
return
|
||||||
# Drain the udev events in the queue -- if we stopped listening to
|
# Drain the udev events in the queue -- if we stopped listening to
|
||||||
|
|
|
@ -104,7 +104,7 @@ class _CurtinCommand:
|
||||||
|
|
||||||
async def start(self, context, **opts):
|
async def start(self, context, **opts):
|
||||||
self._fd = journald_listen(
|
self._fd = journald_listen(
|
||||||
asyncio.get_event_loop(), [self._event_syslog_id], self._event)
|
asyncio.get_running_loop(), [self._event_syslog_id], self._event)
|
||||||
# Yield to the event loop before starting curtin to avoid missing the
|
# Yield to the event loop before starting curtin to avoid missing the
|
||||||
# first couple of events.
|
# first couple of events.
|
||||||
await asyncio.sleep(0)
|
await asyncio.sleep(0)
|
||||||
|
@ -120,7 +120,7 @@ class _CurtinCommand:
|
||||||
waited += 0.1
|
waited += 0.1
|
||||||
log.debug("waited %s seconds for events to drain", waited)
|
log.debug("waited %s seconds for events to drain", waited)
|
||||||
self._event_contexts.pop('', None)
|
self._event_contexts.pop('', None)
|
||||||
asyncio.get_event_loop().remove_reader(self._fd)
|
asyncio.get_running_loop().remove_reader(self._fd)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
async def run(self, context):
|
async def run(self, context):
|
||||||
|
|
|
@ -29,7 +29,7 @@ def _done(fut):
|
||||||
|
|
||||||
|
|
||||||
def schedule_task(coro, propagate_errors=True):
|
def schedule_task(coro, propagate_errors=True):
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
if asyncio.iscoroutine(coro):
|
if asyncio.iscoroutine(coro):
|
||||||
task = asyncio.Task(coro)
|
task = asyncio.Task(coro)
|
||||||
else:
|
else:
|
||||||
|
@ -41,7 +41,7 @@ def schedule_task(coro, propagate_errors=True):
|
||||||
|
|
||||||
|
|
||||||
async def run_in_thread(func, *args):
|
async def run_in_thread(func, *args):
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
try:
|
try:
|
||||||
return await loop.run_in_executor(None, func, *args)
|
return await loop.run_in_executor(None, func, *args)
|
||||||
except concurrent.futures.CancelledError:
|
except concurrent.futures.CancelledError:
|
||||||
|
|
|
@ -162,7 +162,7 @@ class BaseNetworkController(BaseController):
|
||||||
def stop_watching(self):
|
def stop_watching(self):
|
||||||
if not self._watching:
|
if not self._watching:
|
||||||
return
|
return
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
for fd in self._observer_fds:
|
for fd in self._observer_fds:
|
||||||
loop.remove_reader(fd)
|
loop.remove_reader(fd)
|
||||||
self._watching = False
|
self._watching = False
|
||||||
|
@ -170,7 +170,7 @@ class BaseNetworkController(BaseController):
|
||||||
def start_watching(self):
|
def start_watching(self):
|
||||||
if self._watching:
|
if self._watching:
|
||||||
return
|
return
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
for fd in self._observer_fds:
|
for fd in self._observer_fds:
|
||||||
loop.add_reader(fd, self._data_ready, fd)
|
loop.add_reader(fd, self._data_ready, fd)
|
||||||
self._watching = True
|
self._watching = True
|
||||||
|
@ -180,7 +180,7 @@ class BaseNetworkController(BaseController):
|
||||||
if cp.returncode != 0:
|
if cp.returncode != 0:
|
||||||
log.debug("waiting 0.1 to let udev event queue settle")
|
log.debug("waiting 0.1 to let udev event queue settle")
|
||||||
self.stop_watching()
|
self.stop_watching()
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
loop.call_later(0.1, self.start_watching)
|
loop.call_later(0.1, self.start_watching)
|
||||||
return
|
return
|
||||||
self.observer.data_ready(fd)
|
self.observer.data_ready(fd)
|
||||||
|
|
|
@ -70,7 +70,7 @@ class Application:
|
||||||
os.environ.get('SUBIQUITY_REPLAY_TIMESCALE', "1"))
|
os.environ.get('SUBIQUITY_REPLAY_TIMESCALE', "1"))
|
||||||
self.updated = os.path.exists(self.state_path('updating'))
|
self.updated = os.path.exists(self.state_path('updating'))
|
||||||
self.hub = MessageHub()
|
self.hub = MessageHub()
|
||||||
self.aio_loop = asyncio.get_event_loop()
|
self.aio_loop = asyncio.new_event_loop()
|
||||||
self.aio_loop.set_exception_handler(self._exception_handler)
|
self.aio_loop.set_exception_handler(self._exception_handler)
|
||||||
self.load_controllers(self.controllers)
|
self.load_controllers(self.controllers)
|
||||||
self.context = Context.new(self)
|
self.context = Context.new(self)
|
||||||
|
|
|
@ -36,5 +36,5 @@ class MessageHub:
|
||||||
await v
|
await v
|
||||||
|
|
||||||
def broadcast(self, channel, *args, **kwargs):
|
def broadcast(self, channel, *args, **kwargs):
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_running_loop()
|
||||||
return loop.create_task(self.abroadcast(channel, *args, **kwargs))
|
return loop.create_task(self.abroadcast(channel, *args, **kwargs))
|
||||||
|
|
Loading…
Reference in New Issue