Size: a a a

Golang Developers — русскоговорящее сообщество

2020 October 07

AS

Alexey Shumkin in Golang Developers — русскоговорящее сообщество
Yuri
А разве не должен прием блокироваться просто?
🤷‍♂️
https://tour.golang.org/concurrency/4
тут тоже ни слова про "буферизованность"...
источник

R

RapidCodeLab in Golang Developers — русскоговорящее сообщество
Yuri
А разве не должен прием блокироваться просто?
https://play.golang.org/p/rCHAOxJZFjw   наверно хотелось что-то типа этого?https://play.golang.org/p/rCHAOxJZFjw   наверно хотелось что-то типа этого?   это неправильно
источник

AS

Alexey Shumkin in Golang Developers — русскоговорящее сообщество
Alexey Shumkin
🤷‍♂️
https://tour.golang.org/concurrency/4
тут тоже ни слова про "буферизованность"...
хотя если изменить так
  c := make(chan int)
 go fibonacci(10, c)
то пример так же работает
источник

AS

Alexey Shumkin in Golang Developers — русскоговорящее сообщество
Yuri
Господа, прошу помощи. Совсем запутался.
Пытаюсь запустить горутину, чтобы она ждала появления данных в канале.
Потом запускается чтение файла, где он парсится в mail.Message и отправляется в канал, где его должна ждать горутина.

mailChan := make(chan *mail.Message)
go processMail(redis, mailChan)

for _, fileName := range fileNames {
   err := ReadFile(mailChan, fileName)
   if err !=nil {ololo}
}
close(mailChan)


func ReadFile(job chan<- *mailMessage, fileName string) (err error) {
   file, err := os.Open(fileName)
   …
   m, err := mail.ReadMessage(file)

   job <- m
}

func processMail(redis writer.ProcessRedis, in <-chan *mail.Message) {
   for m := range in {

       rcpt := strings.ToLower(m.Header.Get("X-Failed-Recipients"))
….
redis.Insert(record)
   }
}


Вроде делаю, как по написанному 🙂 (ну то есть прямо вот книжный пример взял for m := range in {
А в дебаге вижу, что range выполняется по пустому каналу, хотя, как я понял, такая конструкция в горутине должна блокироваться
а что значит "выполняется по пустому каналу"?
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
Alexey Shumkin
а что значит "выполняется по пустому каналу"?
Ну я в дебаггере вижу, что доходит выполнение до for , иногда проходит до fmt.Printf("Chan length: %d", len(in)) на второй строке после for … range, дальше все завершается
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
Ни фига понять не могу
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
пишет - ноль
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
Блин… запускаю с run -race - все работает, как надо
источник

AS

Alexey Shumkin in Golang Developers — русскоговорящее сообщество
Yuri
Ну я в дебаггере вижу, что доходит выполнение до for , иногда проходит до fmt.Printf("Chan length: %d", len(in)) на второй строке после for … range, дальше все завершается
ну, len(chan) - это , как я понимаю, только про буферизованный канал ))
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
да неважно, на самом деле. Я больше, как индикатор это использую - дошло туда выполнение или нет
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
странно… где-то гонку упускаю. Но где?
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
Всем спасибо. Точно не учел, что main завершается раньше, чем горутина отработает
источник

R

RapidCodeLab in Golang Developers — русскоговорящее сообщество
Yuri
Всем спасибо. Точно не учел, что main завершается раньше, чем горутина отработает
ну скажи для людей, как исправил) как то так? https://play.golang.org/p/5IDcbKiIO3S
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
RapidCodeLab
ну скажи для людей, как исправил) как то так? https://play.golang.org/p/5IDcbKiIO3S
Ага. В точку )
источник

MV

Mike Volkov in Golang Developers — русскоговорящее сообщество
всем, привет. Подскажите плиз, где искать golang программиста? Ищу неделю, откликов совсем нет(
Заранее спасибо
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
Заблокировал main до получения сигнала от горутины «я вся готовая»
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
Mike Volkov
всем, привет. Подскажите плиз, где искать golang программиста? Ищу неделю, откликов совсем нет(
Заранее спасибо
Условия и вилка?
источник

R

RapidCodeLab in Golang Developers — русскоговорящее сообщество
Yuri
Заблокировал main до получения сигнала от горутины «я вся готовая»
сразу надо говорить скока денег)
источник

MV

Mike Volkov in Golang Developers — русскоговорящее сообщество
Yuri
Условия и вилка?
Удаленка, до 250к рублей.
источник

Y

Yuri in Golang Developers — русскоговорящее сообщество
Mike Volkov
Удаленка, до 250к рублей.
А где ищешь-то? В газете?
источник