-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Run this script in Python3.10, we will get "DeprecationWarning: There is no current event loop" warning.
That's caused by
loop = asyncio.get_event_loop()
Suggest to use this
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
And, here
class UDPReceiver:
@staticmethod
def create(loop, local_addr, server, verbose):
task = asyncio.Task(loop.create_datagram_endpoint(
lambda: UDPReceiver(server=server, verbose=verbose),
local_addr=local_addr, allow_broadcast=True))
_, udpreceiver = loop.run_until_complete(task)
return udpreceiver
It creates a Task instance without specifying event loop, that will cause it to use current running loop which does not exists at that time. It will also bring "DeprecationWarning: There is no current event loop" warning.
Suggest to change to this
class UDPReceiver:
@staticmethod
def create(loop, local_addr, server, verbose):
coro = loop.create_datagram_endpoint(
lambda: UDPReceiver(server=server, verbose=verbose),
local_addr=local_addr, allow_broadcast=True)
task = asyncio.Task(coro,loop=loop)
_, udpreceiver = loop.run_until_complete(task)
return udpreceiver
The same modification should apply to UDPSender
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working