Used partial() to wrap Server.handle_reply() (#364)

Fixes #332.
This commit is contained in:
Adam Johnson 2021-04-07 19:14:02 +01:00 committed by GitHub
parent ca61162129
commit 2b6f153616
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,7 @@
* Fixed a bug where ``send`` passed to applications wasn't a true async
function but a lambda wrapper, preventing it from being used with
``asgiref.sync.async_to_sync()``.
3.0.1 (2020-11-12)
------------------

View File

@ -22,6 +22,7 @@ else:
import logging
import time
from concurrent.futures import CancelledError
from functools import partial
from twisted.internet import defer, reactor
from twisted.internet.endpoints import serverFromString
@ -203,7 +204,7 @@ class Server:
application_instance = self.application(
scope=scope,
receive=input_queue.get,
send=lambda message: self.handle_reply(protocol, message),
send=partial(self.handle_reply, protocol),
)
# Run it, and stash the future for later checking
if protocol not in self.connections: