Size: a a a

2021 January 13

VB

Vladimir Berezenko in ru.nim.talks
Это да, там отдельный цикл на каждый поток.
источник

VB

Vladimir Berezenko in ru.nim.talks
threadvar стоит для указателя на цикл.
источник

VB

Vladimir Berezenko in ru.nim.talks
Кстати, я похоже догадался как малой кровью сделать прерывание для футур при ручном их комплите или фэйле. Поэкспериментирую на днях и попробую накатать патч.
источник

MB

Max Brajsky in ru.nim.talks
Vladimir Berezenko
Кстати, я похоже догадался как малой кровью сделать прерывание для футур при ручном их комплите или фэйле. Поэкспериментирую на днях и попробую накатать патч.
источник

MB

Max Brajsky in ru.nim.talks
Nim конечно интересный язык, местами безумно удобный, простой и вроде как всё есть, но местами  всё ещё вводит в ступор =)
источник

MB

Max Brajsky in ru.nim.talks
за подсказку с таймером большое аригато, помогло
источник

VB

Vladimir Berezenko in ru.nim.talks
Max Brajsky
Nim конечно интересный язык, местами безумно удобный, простой и вроде как всё есть, но местами  всё ещё вводит в ступор =)
Согласен. Меня сейчас тревожит полное непонимание и неочевидность того в каких случаях происходит копирование, в каких передача по ссылке, а в каких мув-семантика. Как-то пока мутно это всё.
источник

VB

Vladimir Berezenko in ru.nim.talks
ну и документация полное говно.
источник

MB

Max Brajsky in ru.nim.talks
А так-то потанцевал большой
источник

MB

Max Brajsky in ru.nim.talks
Кек. Ковыряю щас как раз NiGui - норм, мне полностью хватает на эту мелкую задачу, но есть нюансы
например, из треда  pbar.value = float(progress) / float(total) - прогресс-бар обновлять - работает збс
А вот label2.text = "чонить" уже вызывает падения )
источник

VB

Vladimir Berezenko in ru.nim.talks
потому что треды изолированные.
источник

VB

Vladimir Berezenko in ru.nim.talks
в первом случае с числом у тебя ещё фокус прокатывает, а вот во втором - уже нет.
источник

VB

Vladimir Berezenko in ru.nim.talks
я делал через вот так:
proc newSharedChannel[T](): SharedChannel[T] =
 result = cast[SharedChannel[T]](allocShared0(sizeof(Channel[T])))
 open(result[])
источник

MB

Max Brajsky in ru.nim.talks
Как лучше сделать? Задача-то простая - мелкий апдейтер, просто закачивать новую версию проги, запускать её и закрываться.
Но чет в данном случае готов сдаться и пойти к зеленому змию.
источник

VB

Vladimir Berezenko in ru.nim.talks
type
 SharedChannel[T] = ptr Channel[T]
источник

MB

Max Brajsky in ru.nim.talks
Vladimir Berezenko
я делал через вот так:
proc newSharedChannel[T](): SharedChannel[T] =
 result = cast[SharedChannel[T]](allocShared0(sizeof(Channel[T])))
 open(result[])
пасиб, попробую.
источник

MB

Max Brajsky in ru.nim.talks
Но чет для простой задачи реально много гемора получается, меня это печалит =)
источник

VB

Vladimir Berezenko in ru.nim.talks
дело в том, что между потоками нельзя передавать объекты без копирования. получается треш и угар, т.к. это опять-же нигде кроме как в коде не видно и в документации тоже вобщем-то нихрена нет. я 2 недели на раскопки убил, пока nimongo правил.
источник

MB

Max Brajsky in ru.nim.talks
Тут вопрос - как в основном потоке, где крутится луп от NiGUI, принять данные из потока, где httpclient?
Лан, спасибо за помощь )
источник

VB

Vladimir Berezenko in ru.nim.talks
так я тебе только-что скинул как. это через channel надо делать, но через shared channel
источник