Currently a block must have all of its output ports connected so that work() can be allowed. This is a result of each output port being required to have message and buffer resources available (even if unused) because they are used for back-pressure and resource management. It just so happens that these resources are not allocated without a connection. Some block authors may like to create output ports that will be serviced regardless of usage. Its more of a user decision at connection time to decide if that output is useful (like debug streams, status messages). Lets make output ports optionally-connectable just like input ports. This should mostly be a small logic change.
Currently a block must have all of its output ports connected so that work() can be allowed. This is a result of each output port being required to have message and buffer resources available (even if unused) because they are used for back-pressure and resource management. It just so happens that these resources are not allocated without a connection. Some block authors may like to create output ports that will be serviced regardless of usage. Its more of a user decision at connection time to decide if that output is useful (like debug streams, status messages). Lets make output ports optionally-connectable just like input ports. This should mostly be a small logic change.