make SMsgStreamSource::available optional, feed can be block
smessage feed should not block