Comment made by: andrewhr
As far as I could understand, the
close! implementation follows all
takes and run their respective callbacks for releasing.
The approach I follow was doing the same for
puts, so we guarantee previously parked
put will be release - like demonstrated by the general case of this error.
In the same patch, I added a single test to assert this behavior and ported the same code to ClojureScript implementation. I could split both impls on different patches, but I judged having everything together will ease the screening.