Fixed a bug: connections weren't actually removed #79
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In server_interface::MessageClient(client):
In the branch where "client" was found to be not connected (else on line 918): Line 926, "client.reset()," is before line 929, "erase client from m_deqConnections." This means "client" evaluates to nullptr, whereas the shared_ptr in m_deqConnections has not been reset. Nothing is removed from the container.
Fix: I swapped the two lines.
Found by / reproducable by:
My implementation had a function "DisconnectClient" which copied the logic in this else block. Another function, "DisconnectAll," simply said:
while (!m_deqConnections.empty()) DisconnectClient(m_deqConnections.front()); Infinite loop.
I don't know why the file viewer says I changed the Author line. I didn't.