Add logic to address threading issues with writing from memory access #115
+129
−66
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.
We discovered a pretty nasty bug in the memory access class when it came to responding to write requests. We were never receiving the data to be written even though it was being seen on the bus. Turns out the blocking get in the dm14 sever was blocking the reception of the data. This is because the memory access _listen for dm14 was being called from the receive thread of the bus, but then the notifiy function (which was calling the respond method) was also being called from within the receive thread which then led to that thread getting blocked when we wait for the data. So the patch for that issue was to make a servicer thread that monitors when to call the notify function so that it will be called from a different thread and not block the receive thread.