Size: a a a

2020 March 12

S

Snusmumriken in pro.lua
Igor725
Я, например, пытался инициализировать стейт с библиотекой base только, чтобы с помощью require уже внутри все свои дела делать
Таки при создании нового стейта со звёздочкой lanes.gen("*", func), это вливает в свежесозданный стейт всю стандартную библиотеку.
Ещё require, помнится, можно выудить через lanes.require внутри нового стейта.
источник

I

Igor725 in pro.lua
ну я вместо звёздочки пытался base писать, потому что что-то такое в документации находил
источник

S

Snusmumriken in pro.lua
Оно тоже должно добавить require, так что странно.
источник

I

Igor725 in pro.lua
Должно-то должно, но он инициализировал вообще пустой стейт, без print, require, table, math, ...
источник

S

Snusmumriken in pro.lua
Глюк.

Во, ещё у меня было веселье, когда пришлось впихивать в lanes корутины, для ограничения времени работы. Допустим, есть шедулер задач, и нужно чтобы каждая задача выполнялась ограниченное количество времени, и просто отваливалась если не успела. Таймауты и уничтожения потоков в лейнсах работают так, что фактически в луёвый байткод стейта вставляются дополнительные инструкции проверок "а не хотят ли нас завершить", и пока поток заблокирован чем-то типа того же сишного хттп-запроса — оно ничего не проверяет и блокирует поток по настоящему, не давая его удалить до завершения запроса. Поэтому пришлось оборачивать в корутины обычные хттп-запросы и всякое такое блокирующее io, чтобы потоки завершались ))

Нет, можно было и просто "забывать" про то что у нас есть такая таска, но количество хендлеров росло и вся прога просто падала ))
источник

VV

V V in pro.lua
Snusmumriken
Глюк.

Во, ещё у меня было веселье, когда пришлось впихивать в lanes корутины, для ограничения времени работы. Допустим, есть шедулер задач, и нужно чтобы каждая задача выполнялась ограниченное количество времени, и просто отваливалась если не успела. Таймауты и уничтожения потоков в лейнсах работают так, что фактически в луёвый байткод стейта вставляются дополнительные инструкции проверок "а не хотят ли нас завершить", и пока поток заблокирован чем-то типа того же сишного хттп-запроса — оно ничего не проверяет и блокирует поток по настоящему, не давая его удалить до завершения запроса. Поэтому пришлось оборачивать в корутины обычные хттп-запросы и всякое такое блокирующее io, чтобы потоки завершались ))

Нет, можно было и просто "забывать" про то что у нас есть такая таска, но количество хендлеров росло и вся прога просто падала ))
???
Какая-то сильна сложная конструкция получилась. Почему не добавить в функцию потока обработку сообщения "kill" и не кидать такое сообщение, когда ходим убить поток?
источник

S

Snusmumriken in pro.lua
Поток будет продолжать висать пока хттп-запрос не выполнится полностью.
источник

VV

V V in pro.lua
Можно вместо строчки kill через cancel кидать сигнал
источник

S

Snusmumriken in pro.lua
Можно, но там ровно та же ситуация ))
источник

VV

V V in pro.lua
Snusmumriken
Поток будет продолжать висать пока хттп-запрос не выполнится полностью.
Ок, если поток не хочет обрабатывает сигнал, ввлим его наглухо =)
источник

S

Snusmumriken in pro.lua
Это виндовс, тут нет таких сигналов. Точнее, может и есть, но нужно ещё чего-то подрубать.
источник

VV

V V in pro.lua
True, - 1, 3 (или как-то так) в качестве аргументов в cancel - и все умерли
источник

S

Snusmumriken in pro.lua
Не а, не работает под вендой ))
Я уже пробовал. Хендлер потока продолжает висеть пока запрос не завершится.
источник

VV

V V in pro.lua
Snusmumriken
Не а, не работает под вендой ))
Я уже пробовал. Хендлер потока продолжает висеть пока запрос не завершится.
Забавная особенность. Надо будет проверить))
источник

VV

V V in pro.lua
Snusmumriken
Не а, не работает под вендой ))
Я уже пробовал. Хендлер потока продолжает висеть пока запрос не завершится.
Что значит "хедер продолжает висеть"?
источник

VV

V V in pro.lua
Хедер ты вручную в родительском потоке удаляешь же
источник

S

Snusmumriken in pro.lua
Хендлер.
источник

S

Snusmumriken in pro.lua
Вот такая штука. У венды всё на хендлерах.
источник

VV

V V in pro.lua
После того, как статус станет Done, stopped, error, и т.д.
источник

S

Snusmumriken in pro.lua
Он не меняется до полного выполнения блокирующей операции ))
Как раз статус проставляется дополнительными инструкциями в луёвом коде на стороне дочернего стейта. Если луёвые инструкции в дочке не идут — ничего не меняется, не принимается и не отдаётся.
источник