<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Оптимальный способ остановки исполнения скрипта]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Оптимальный способ остановки исполнения скрипта форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 04 Apr 2026 13:23:44 +0300</pubDate>
		<item>
			<title>Оптимальный способ остановки исполнения скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message48001/topic5761/">Оптимальный способ остановки исполнения скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_rV9Y2qSl" href="/user/14219/" bx-tooltip-user-id="14219">verder</a> написал:<br />Каков оптимальный способ программно остановить исполнение скрипта на QLua?<br />Например, код диагностирует некую внутреннюю ошибку по своей логике, выкидывает message и сразу останавливает работу скрипта во всех потоках.<br />=============<br />в main есть бесконечный цикл поставьте в нем переменную и присваивайте ей nil &nbsp;при ошибке. В итоге скрипт завершит работу <br />
			<i>26.08.2020 09:40:02, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message48001/topic5761/</link>
			<guid>http://forum.quik.ru/messages/forum10/message48001/topic5761/</guid>
			<pubDate>Wed, 26 Aug 2020 09:40:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Оптимальный способ остановки исполнения скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message47962/topic5761/">Оптимальный способ остановки исполнения скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_kUm1VW5H" href="/user/14219/" bx-tooltip-user-id="14219">verder</a> написал:<br />сразу останавливает работу скрипта во всех потоках<br />=============<br />У скрипта один поток - мейн, второй поток, в котором выполняются колбеки - это главный поток квика.<br /><br />Если вы сами создаете какие-то еще потоки, только вы и знаете, как их остановить. Вообще задача красивой остановки потока, выполняющего произвольный код, решения не имеет. Как пример потоки в c++, если в одном потоке случается unhandled exception, рушится все приложение без раскрутки стеков других потоков.<br /><br />Если говорить только о стандартных потоках в квике, то вариантов два, либо ошибка в колбеке, либо в мейне. В мейне можно просто сгенерировать error и скрипт остановится. В колбеках надо выполнять все под pcall, если возникает ошибка, переправлять ее в мейн, а тот ее же бросит в своем потоке и сведет все к первому варианту. Это легко, если мейн построен как обработчик сообщений, тогда он просто вместо очередного сообщения получит сообщение об ошибке. Если в мейне свободно выполняемый код, придется периодически смотреть, не было ли в колбеках ошибки.<br /><br />Чтобы в процессе распространения ошибки колбеки не продолжали посылать сообщения, можно завести глобальный флажок, устанавливаемый при любой ошибке, где бы она ни случилась. Каждый колбек в самом начале проверяет этот флажок, если установлен - просто сразу return. <br />
			<i>25.08.2020 09:09:22, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message47962/topic5761/</link>
			<guid>http://forum.quik.ru/messages/forum10/message47962/topic5761/</guid>
			<pubDate>Tue, 25 Aug 2020 09:09:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Оптимальный способ остановки исполнения скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message47961/topic5761/">Оптимальный способ остановки исполнения скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Каков оптимальный способ программно остановить исполнение скрипта на QLua?<br />Например, код диагностирует некую внутреннюю ошибку по своей логике, выкидывает message и сразу останавливает работу скрипта во всех потоках. <br />
			<i>25.08.2020 02:34:19, verder.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message47961/topic5761/</link>
			<guid>http://forum.quik.ru/messages/forum10/message47961/topic5761/</guid>
			<pubDate>Tue, 25 Aug 2020 02:34:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
