-
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
Queued messages aren't processed sometimes #82
Labels
Comments
ForNeVeR
added a commit
that referenced
this issue
Sep 29, 2019
Now the MessageSender code only blocks on incoming message when it is absolutely necessary. In other cases, it will try to peek a new message, and will flush the queue if there're no incoming messages.
ForNeVeR
added a commit
that referenced
this issue
Sep 29, 2019
This was referenced Sep 29, 2019
Closed
ForNeVeR
added a commit
that referenced
this issue
Sep 30, 2019
ForNeVeR
added a commit
that referenced
this issue
Sep 30, 2019
ForNeVeR
added a commit
that referenced
this issue
Oct 1, 2019
ForNeVeR
added a commit
that referenced
this issue
Oct 1, 2019
Now the MessageSender code only blocks on incoming message when it is absolutely necessary. In other cases, it will try to peek a new message, and will flush the queue if there're no incoming messages.
ForNeVeR
added a commit
that referenced
this issue
Oct 1, 2019
ForNeVeR
added a commit
that referenced
this issue
Oct 1, 2019
ForNeVeR
added a commit
that referenced
this issue
Oct 1, 2019
ForNeVeR
added a commit
that referenced
this issue
Oct 1, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Right now I'm in the state when there's always one message in the queue:
After that, one message gets sent, but the queue still contains one.
Probably this code is the culprit:
emulsion/Emulsion/MessageSender.fs
Lines 57 to 66 in 14a3e91
Here, we always await the incoming actor message first before doing anything else. But we should probably process the queue first, or maybe perform
TryReceive
to check if we have any messages. We should performReceive()
only on empty queue or if the queue is locked (bySetReceiveStatus false
).The text was updated successfully, but these errors were encountered: