Author Topic: Снятие с паузы запускает все потоки  (Read 7140 times)

0 Members and 1 Guest are viewing this topic.

Sabin

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Ожидал, что пауза запоминает состояние всех потоков и потом при продолжении запускает только те, что работали.
Простой скрипт в 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 Спасибо за внимание
« Last Edit: June 07, 2015, 09:09:29 PM by Sabin »

alexenin

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Снятие с паузы запускает все потоки
« Reply #1 on: March 07, 2016, 03:12:49 AM »
хорошая тема, тоже думал над этим.

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

Допустим

SUB(_event_pause)
SUB(_event_next)

Тогда можно будет сохранить текущее состояние потоков, а потом перед продолжением проверить игровые события

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Снятие с паузы запускает все потоки
« Reply #2 on: March 07, 2016, 07:21:43 AM »
Это уже исправлено в 4.12b
http://crapware.aidf.org/forum/index.php?topic=356.msg14992#msg14992
Кстати потоки теперь можно пере запускать.

Вот полная сборка, она пока тестируется, некоторые новые функции не работают корректно.
https://yadi.sk/d/rQnhKmxYprJcP
« Last Edit: March 07, 2016, 07:23:42 AM by Oraven »

alexenin

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Снятие с паузы запускает все потоки
« Reply #3 on: March 10, 2016, 04:29:10 PM »
да, все работает как надо.
спасибо