Sure, but with the above, there's 1 mutex to read the channel,
not 1 per backend. And a single thread reading the channel.
Plus you know that if the backend is on the channel, you know it's ready to accept, and you don't need the alive flag with synchronized access.