You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The dispatch-communication thread and the run-node thread compete for node_, as a shared resource. Either one of these can starve the other, if one repeatedly acquires node_ consecutively.
This is especially apparent when e.g., vm-node instances > 1. Because the run-node thread processes all VM instances before relinquishing node_, the issue is exacerbated given run-node's tendency to win the race for node_.
The idea is that when a transmission from dispatch is received, a flag is set. The run-node thread always checks if there's a pending transmission before acquiring node_. If true, then run-node thread waits until the transmission is complete before acquiring node_.
I don't consider it a perfect solution because a transmission could theoretically take considerable time to complete, and run-node is waiting idle during that period, but it works for my purposes, and is certainly an improvement over the current.
The text was updated successfully, but these errors were encountered:
The dispatch-communication thread and the run-node thread compete for node_, as a shared resource. Either one of these can starve the other, if one repeatedly acquires node_ consecutively.
This is especially apparent when e.g., vm-node instances > 1. Because the run-node thread processes all VM instances before relinquishing node_, the issue is exacerbated given run-node's tendency to win the race for node_.
I implemented a fix on my fork: moralismercatus@e2774ac#diff-b5094f7d4fdca6fbd261c78e8b3d8c50
The idea is that when a transmission from dispatch is received, a flag is set. The run-node thread always checks if there's a pending transmission before acquiring node_. If true, then run-node thread waits until the transmission is complete before acquiring node_.
I don't consider it a perfect solution because a transmission could theoretically take considerable time to complete, and run-node is waiting idle during that period, but it works for my purposes, and is certainly an improvement over the current.
The text was updated successfully, but these errors were encountered: