Рассмотрим следующий код:
process := [ (Delay forSeconds: 10) wait ]
forkAt: Processor userBackgroundPriority.
process terminate.
process isTerminated. "--> false"
process resume. "process has been suspended but not terminated"
(Delay forSeconds: 10) wait.
process isTerminated "--> true"
Как видите, процесс не завершится до тех пор, пока блок не будет оценен (т. е. в данном случае через десять секунд).
Есть ли способ немедленно завершить процесс? Кроме того: кто-нибудь знает, почему блок оценивается в первую очередь?
Изменить: я понимаю, почему оценивается блок. Проблема с приведенным выше кодом, конечно же, заключается в том, что я пытаюсь завершить процесс до того, как он станет активным. Тем не менее, что, если я не хочу ждать, пока истечет отсрочка?