
Den
19.02.2018
14:27:18
здравствуйте. Подскажите как дебажить код с горутинами, взял примеркода, там функции запускаются в майне через go, как вотчеры поставить на переменные? или брейкпойнт в горутину?
я запускаю приложение, они пишет что выход с кодом ошибки ноль и все

Alexander
19.02.2018
14:29:09

Den
19.02.2018
14:29:36
это я не правильно выразился

Google

The
19.02.2018
14:30:19
в Goland есть переключение по горутинам
во вкладке debug есть сайдбар слева, там все горутины

Den
19.02.2018
14:31:19

Alexey
19.02.2018
14:31:46

Den
19.02.2018
14:32:27
хочу оформить в виде отдельной проги, и не пойму как он там запускается чтоб висеть в фоне
там через таймер как то чтоль? https://github.com/SaturnsVoid/GoBot2/blob/master/components/Command.go

Alexey
19.02.2018
14:39:43
Вы в демонах всегда сигналы отлавливаете? :)

Daniel
19.02.2018
14:55:36

Никита
19.02.2018
15:38:20
Это API'шник, который я хочу раздробить ради удобства (сложно ориентироваться в тысячах строк кода в одном файле). Каждый компонент - набор вызовов(пользователи, друзья, и т.д.). Все эти вызовы используют несколько функций, которые я думаю запихнуть отдельный файл и импортировать в каждый компонент. Нормальная ли такая структура?

Nikita
19.02.2018
15:46:38
а либы не сделали в go ещё?
чтобы рантайм можно было шэрить

Google

Алекс
19.02.2018
15:47:11
Сделали
Давно

Nikita
19.02.2018
15:47:17
ок

Алекс
19.02.2018
15:47:25
Plugin

Daniel
19.02.2018
15:48:18

Nikita
19.02.2018
15:48:33
эм, чтобы бинари меньше весили

Алекс
19.02.2018
15:48:36

Nikita
19.02.2018
15:48:39
чтобы шарить память между ними
чтобы COW работал

Daniel
19.02.2018
15:49:13

Nikita
19.02.2018
15:49:29
эм, для эмбеда бинари в 1мб это много

Daniel
19.02.2018
15:49:48
для эмбеда go не годится.

Nikita
19.02.2018
15:49:53
почему?)

Daniel
19.02.2018
15:50:05
по множеству причин. начиная с gc

Nikita
19.02.2018
15:50:13
https://github.com/golang/go/tree/master/src/cmd/compile/internal/mips64

Daniel
19.02.2018
15:51:08
эмбед - это не архитектура mips, это другое

Алекс
19.02.2018
15:51:24
Раст норм для эмбеда

Daniel
19.02.2018
15:51:36
вот это может быть, да

Vladimir
19.02.2018
15:51:45

Nikita
19.02.2018
15:52:45

Google

Kirill
19.02.2018
15:52:54

Vladimir
19.02.2018
15:53:08
ембед разный)
Ну я вообще не слышал что бы кто то кроме лонгсомов взял мипс64
Наверное он конечно где то ещё есть

Nikita
19.02.2018
15:53:38
ну к вопросу это не относится

Vladimir
19.02.2018
15:53:41
Но даже так это адская редкость

Daniel
19.02.2018
15:53:54

Olzhas
19.02.2018
15:54:00
мы юзаем железки с мипс для впн

Vladimir
19.02.2018
15:54:12

Olzhas
19.02.2018
15:54:16
ага

Vladimir
19.02.2018
15:54:26

Olzhas
19.02.2018
15:54:30
только там го нет
я не в курсе насчет параметров железа

Vladimir
19.02.2018
15:54:52
Я б себе девборду купил бы
Люблю экзотику

Olzhas
19.02.2018
15:55:23
китай вроде

Vladimir
19.02.2018
15:55:37
Ну китайцев просто вагон
Там ЦПУ не указан :(
Мне на саму железку пофиг

Olzhas
19.02.2018
15:58:13
ничего не будет указано

Google

Vladimir
19.02.2018
15:58:22
Ну вот печаль

Nikita
19.02.2018
15:59:39

Olzhas
19.02.2018
16:00:28

Nikita
19.02.2018
16:01:58
ну где впн делаете, что за организация?

Vladimir
19.02.2018
16:02:22

Admin
ERROR: S client not available

Olzhas
19.02.2018
16:02:39
я удалил ссылку, чтобы не посчитали рекламой

Vladimir
19.02.2018
16:02:39
А, исчезла

Nikita
19.02.2018
16:04:06
спасибо

Roman
19.02.2018
16:15:16
есть альтернатива sync.WaigGroup'е которая может ждать с timeout'ом?
if err := lock.Wait(5 * time.Second); err != nil {
// timed out
}
или придётся самому пилить?

Alexey
19.02.2018
16:15:44

Roman
19.02.2018
16:16:22
ща использую async.WaitGroup для тестирования асинхронного взаимодействия между двумя системами, но думаю без timeout'а херово, тест зависает просто и всё))

Алекс
19.02.2018
16:41:40
есть у кого в чате пет-прожекты по типу спарка? map-reduce, вот это все
устал от скалы

Vlad
19.02.2018
17:21:25
и как бекенд язык можно использовать
(но это неточно)

Алекс
19.02.2018
17:30:39

Google

Алекс
19.02.2018
17:31:12
Слишком хипстерский

Александр
19.02.2018
18:09:57
никто не сталкивался с тем что в винде консольй гоу встает на паузу?
просто тупо перестает исполняется
как будто выполнили sleep с бесконечностью

Arch
19.02.2018
18:12:33
Вероятно он уходит в дедлок
может канал не закрыт и прога ждет из него данные

Александр
19.02.2018
18:14:16
там тик цикл и гоурутины

Daniel
19.02.2018
18:14:40
а еще там лажа и дедлок, очевидно
сам по себе го на паузу не встает

Александр
19.02.2018
18:15:37
var wg sync.WaitGroup;
ticker := time.NewTicker(5 * time.Minute)
for range ticker.C {
wg.Add(8)
go blablabla(&wg)
go blablabla(&wg)
go blablabla(&wg)
go blablabla(&wg)
go blablabla(&wg)
go blablabla(&wg)
go blablabla(&wg)
go blablabla(&wg)
wg.Wait()
}
что-то такое
конечно внутри каждой defer wg.done()
на маке пашет уже пол часа - все идеально
как бы подловить его... на wg.Wait() уперся или нет

Daniel
19.02.2018
18:19:46
ну - сделать свой waitgroup на атомике
и в wait сунуть ему log.Println