Nikolay
чтобы не связывать потом свои догадки что это влияет на сборку мусора
Nikolay
не хотите - не разбирайтесь
Anonymous
8))))))))) ха ха .... да я то разобрался и у меня не падает приложение , а вот если уберу эту строчку то оно упадет через полчаса
Anonymous
вы наверно думаете что GO гарбадж коллектор пишет сам бог?
Nikolay
а что делает магическая строчка в таком случае? почему не падает?
Nikolay
хоть бы в документацию глянули чтоли
Nikolay
надо ж было придумать что это относится к сборщику мусора как-то
Anonymous
https://groups.google.com/forum/#!msg/golang-nuts/IiWZ2hUuLDA/hNLEIEWrO4sJ
Anonymous
да я навскидку первый попакший результат поиска 8))))))
Nikolay
отлично. теперь есть понимание после прочтения зачем нужен LockOSThread?
Anonymous
http://grokbase.com/p/gg/golang-nuts/12c2hrgpva/go-nuts-re-sdl2-and-runtime-lockosthread
Anonymous
вы не понимаете что речь шла об SDL2
Nikolay
без этой штуки нет гарантий что горутина при переключении контекста будет выполнятся в той же системной нитке где была запущена. а при использовании разных технологий и библиотек через CGO иногда необходимо, чтобы последовательность вызовов осуществлялась гарантированно из одной и той же системной нитки. Поэтому, есть функа прибивающая горутину к определенному процессу (P) планировщика Go и он ее занимает полностью
Nikolay
и это относится не только к SDL2 - такие вещи как обязательное выполнение вызовов в одном потоке встречаются не только в этой шляпе
Nikolay
сборщик мусора тут не при чем вообще
Nikolay
супер простая вещь для понимания
Anonymous
ну хорошо ... когда вы видите что расходование памяти растет со скоростью 100 килобайт в секунду ... то конечно проще теоретизировать 8)))
Anonymous
Воистину!
аминь! 8))))))
Nikolay
ну хорошо ... когда вы видите что расходование памяти растет со скоростью 100 килобайт в секунду ... то конечно проще теоретизировать 8)))
к управлению памяти прибитие выполнение горутины к системной нитке не имеет никакого отношения - берете читаете сурсы рантайма, все супер просто. А связывать одно с другим не имея понимания как что работает из того что используется это как гадать на кофейной гуще. Ссылку привели, даже там написано что эта штука делает - видимо сами не верите в то, чем аргументируете
Nikolay
на этом у меня по этой теме все, не хотите разбираться как и зачем и что использовать и почему то или иное поведение - ваше право
Anonymous
я бы вам сырец кинул .... ну да ладно, вам все ясно ! будем считать дискуссия закончена!
Anonymous
теоретик - это тот кому не нужно смотреть в исходный код ....ему и так все ясно из книжки!
Anonymous
откланиваюсь оппонентам!
Nikolay
теоретик - это тот кому не нужно смотреть в исходный код ....ему и так все ясно из книжки!
опять сплошные догадки. не из книжек, а из исходного кода рантайма, благо с версии 1.5 он написан на Go и он очень подробно снабжен комментариями. советую к изучению, чтобы не гадать сидеть и не спорить с теми, кто дал совет разобраться в теме получше
Anonymous
Заметьте речь шла об SDL2 ...
Мерль
https://github.com/golang/go/wiki/LockOSThread
Мерль
Some libraries, especially graphical frameworks/libraries like Cocoa, OpenGL, libSDL all require it's called from the main OS thread or called from the same OS thread due to its use of thread local data structures. Go's runtime provides LockOSThread() function for this, but it's notoriously difficult to use correctly.
Nikolay
Заметьте речь шла об SDL2 ...
Вам уже двое пишут одно и тоже, может наведет это вас на мысли
Stanislav
а не понимаю, в чем проблема? если либа не thread-safe (пусть и thread-aware) - то надо LockOSThread() вызывать, иначе или падение, или жесткая утечка памяти.
Anonymous
все что касалось моих впечатлений от работы SDL2 я высказал 8))
Мерль
Я вообще не понимаю, о чём спор. С некоторыми библиотеками можно работать только из одного треда. Для этого есть LockOSThread О чём тут можно спорить?
Stanislav
SDL не thread-safe же, поэтому надо прибивать к одному треду (не системному, блин, а к ОДНОМУ)
Anonymous
SDL не thread-safe же, поэтому надо прибивать к одному треду (не системному, блин, а к ОДНОМУ)
точно ... первые попытки делал разделяя отрисовку в разные рутины ... падение жесткое!
Anonymous
я пытаюсь это донести уже минут 20)
вы до сих пор считаете что мы спорим? 😄
Anonymous
нет, я ответил не Вам)
ну а вдруг это новый холивар ... рассуждения о том как рботает гарбадж коллектор?😂
Мерль
точно ... первые попытки делал разделяя отрисовку в разные рутины ... падение жесткое!
Ну так прибейте эти горутину к одному треду, шлите в неё таски и дёргайте из неё SDL В чём проблема?
Anonymous
раньше программеры С++ с важным видом говорили о парадигмах ООП , чего мы хуже .... будем говорить о гарбадж коллекторе😄
Anonymous
Ну так прибейте эти горутину к одному треду, шлите в неё таски и дёргайте из неё SDL В чём проблема?
у меня все работает 8))) мне советов не нужно http://delimiter-lab.online:9090/tetrisWin.rar
Мерль
Anonymous
да ничего ... тут всех N A попутал ... начал давать советы по уже работающему приложению 😂
nvkv
серёжа
Nikolay
гарбадж коллектор тоже не понимает чего чистить .... пока не втыкнешь runtime.LockOSThread()
я лиш увидел заблуждение в этом, что LockOSThread() помогает GC чистить память, а если не воткнешь "не понимает чего чистить". Дал совет разобраться что делает LockOSThread - вот и все
Stanislav
а вообще просто надо про нити и горутины почитать человеку. Что, кстати, и было посоветовано
Stanislav
Anonymous
во время .... это наше ВСЕ ! Это я люблю!😊
nvkv
Или вы по старой доброй традиции, ожидаете, что инструкция начинается со слов "итак, оно не работает"
nvkv
Просто у вас сейчас приложение работает, но вы не понимаете, почему именно оно работает
nvkv
В этом случае намного лучше, чтобы оно не работало
nvkv
Anonymous
вай вай .... я еще и в AI участвую ... http://theaigames.com/competitions/ultimate-tic-tac-toe/leaderboard/global/a/ как же это я с "немытым то рылом"
Anonymous
GOkaidzu 8)))
Anonymous
и вебфреqм спросонья написал http://delimiter-lab.online:9090 это я погорячился....😂
nvkv
И тем не менее вы путаете причину утечек памяти в sdl
Anonymous
И тем не менее вы путаете причину утечек памяти в sdl
сори я просто не понял что тут знатоки SDL2-CGO-GO-сборщика мусора, извините!
Anonymous
Nikolay
сори я просто не понял что тут знатоки SDL2-CGO-GO-сборщика мусора, извините!
да ничего страшного, все нормально. да и не нужно обид, ложные выводы это нормально, но лучше разобраться что к чему, чтоб не заблуждаться
Anonymous
Уже выяснили, что сборщик мусора в Go написан самим богом. То есть, сам бог убирает за вами мусор в ваших программах! Алилуйя!
Anonymous
а то мы из рекурсии рутину вызываем а затем из рутины рекурсию .... а божественного муысла и не знаем!😂
Nikolay
N A знает божественный умысел .... я тоже хочу!
ну не нужно детский сад только устраивать и передергивать, я вас прошу. взрослые же люди.
redbeard
гиперемия у Владимира
redbeard
давление?
Anonymous
в данный момент в мочевом пузыре .... 😂
Anonymous
Не разводите срач как вчера в чатике про js про то, что v8 из nodejs является компилятором и исполняет нативный код
redbeard
дай-то бог, чтобы только там
серёжа
ну не нужно детский сад только устраивать и передергивать, я вас прошу. взрослые же люди.
Ну что же Вы всё продолжаете эту дискуссию, Вы что, не видите — человек не в себе