Чумовой язык, да.
Например нет атоммарной операции «отправить в канал и вернуть ошибку если канал закрыт». Вобще нет. При этом отправка чего нибудь в закрытый канал вызовет КРОВЬ КИШКИ РАСПИДОРАСИЛО панику.
Как следствие — внятного способа отследить состояние горутины — отсутствует.
Ну и до кучи.
func Send(c chan bool, t bool) {
defer func() {
recover()
return
}()
c <- t
return
}
На открытом канале этот код отрабатывает в 3 раза быстрее, чем на закрытом. А без defer - еще в 3 раза быстрее.
Originally published at U.F.M's Homepage. You can comment here or there.
(no subject)
Date: 2014-05-14 05:59 (UTC)(no subject)
Date: 2014-05-14 07:01 (UTC)(no subject)
Date: 2014-05-14 07:35 (UTC)(no subject)
Date: 2014-05-14 17:45 (UTC)(no subject)
Date: 2014-05-14 19:58 (UTC)