Push threads stay attached to their block until it's either 1. full 2. reached by the read window.
This means that new items may be pushed into very old windows.
To prevent this, a check could be made before every (n-th?) push that checks if the current write window is at most m steps behind the global one, claiming a new write window if not.
Push threads stay attached to their block until it's either 1. full 2. reached by the read window.
This means that new items may be pushed into very old windows.
To prevent this, a check could be made before every (n-th?) push that checks if the current write window is at most m steps behind the global one, claiming a new write window if not.