Автокликер Clickermann :: Форум

Основной раздел => Ошибки => Архив => Topic started by: Sabin on June 07, 2015, 08:46:17 PM

Title: Снятие с паузы запускает все потоки
Post by: Sabin on June 07, 2015, 08:46:17 PM
Ожидал, что пауза запоминает состояние всех потоков и потом при продолжении запускает только те, что работали.
Простой скрипт в 3 потока:
Quote
#name ("глюк паузы")
print("Поставь меня на паузу")
wait(10)
print("Спасибо за внимание")
halt // for single run
thread(stop_here,0)
print("Я не должен был быть запущен")
wait(1)
end_thread
thread(normal_way,1)
print("Это основная программа")
wait(3)
end_thread

Если его просто запустить - всё нормально:
Quote
20:44:16 Поставь меня на паузу
20:44:16 Это основная программа
20:44:19 Это основная программа
20:44:22 Это основная программа
20:44:25 Это основная программа
20:44:26 Спасибо за внимание

Но стоит поставить паузу нажав кнопку в основном окне, редакторе или комбинацией Alt+A, как пробуждается древнее зло:
Quote
20:45:55 Поставь меня на паузу
20:45:55 Это основная программа
20:45:57 Я не должен был быть запущен
20:45:58 Я не должен был быть запущен
20:45:58 Это основная программа
20:45:59 Я не должен был быть запущен
20:46:00 Я не должен был быть запущен
20:46:01 Я не должен был быть запущен
20:46:01 Это основная программа
20:46:02 Я не должен был быть запущен
20:46:03 Я не должен был быть запущен
20:46:04 Я не должен был быть запущен
20:46:04 Это основная программа
20:46:05 Я не должен был быть запущен
20:46:05 Спасибо за внимание
Title: Re: Снятие с паузы запускает все потоки
Post by: alexenin on March 07, 2016, 03:12:49 AM
хорошая тема, тоже думал над этим.

Можно ли в программе сделать вызов определенных функций при нажатии на паузу и на продолжение.
Это очень актуально с потоками.

Допустим

SUB(_event_pause)
SUB(_event_next)

Тогда можно будет сохранить текущее состояние потоков, а потом перед продолжением проверить игровые события
Title: Re: Снятие с паузы запускает все потоки
Post by: Oraven on March 07, 2016, 07:21:43 AM
Это уже исправлено в 4.12b
http://crapware.aidf.org/forum/index.php?topic=356.msg14992#msg14992 (http://crapware.aidf.org/forum/index.php?topic=356.msg14992#msg14992)
Кстати потоки теперь можно пере запускать.

Вот полная сборка, она пока тестируется, некоторые новые функции не работают корректно.
https://yadi.sk/d/rQnhKmxYprJcP (https://yadi.sk/d/rQnhKmxYprJcP)
Title: Re: Снятие с паузы запускает все потоки
Post by: alexenin on March 10, 2016, 04:29:10 PM
да, все работает как надо.
спасибо