[weak self] capture lists to break reference cycles.
[weak self] capture lists to break reference cycles.

'unowned' does not work, since a notify block hasn't necessarily run by the time the select() statement exits.
Once that happens, the channel could be garbage-collected at any time; if a notify block is trying to run during (or after) deinit time, the unowned reference would cause a crash.

glessard/swift-channels,glessard/swift-channels