-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use tokio streams instead of crossbeam to fix deadlock issues #26
Conversation
@DaanDD |
@johnmanjiro13 Done! |
@johnmanjiro13 Fixed the merge conflict |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thank you.
@@ -17,15 +17,13 @@ include = [ | |||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | |||
|
|||
[dependencies] | |||
async-trait = "0.1.61" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm glad to remove these dependencies 👍
v0.4.0 was released. |
I had issues with this package causing my whole application to hang. After some debugging I found it was because of the usage of crossbeam within an async environment. I created a PR to switch to tokio streams instead which fixes this issue. There's no need to do
try_recv
anymore in an infinite loop, instead the blockingrecv().await
call is used. I opted to usebroadcast
because it allows forclient.send
to remain non async. This meant I had to makeRecord
clonable.