the deferred flush was happening after singling the channel, which made it non-deterministic. need to flush *then* signal the channel.