On Tue, Jun 16, 2015 at 1:32 PM, Marcus Müller
if I understand you correctly, you think the situation calls for
something like a “wait for message flag” that a block would need to set
every work call?
Actually, this is the idea–that, when needed, make a call to the
scheduler just before ending work, that says, in in effect–don’t call
again until input message port X is not empty.
Otherwise, call me again whenever you otherwise would, which, for a
block, is when there is room in the output buffer (subject to other
This would allow work() to be invoked one more times as needed, to
any pending data that might exceed noutput_items in a given call, yet
finally wait on a message for more content.
The key point would be to not block in work, which prevents the
from that block from processing any other events, but instead allow the
scheduler itself to do so.