Изображение висит, что дальше? - PullRequest
0 голосов
/ 25 апреля 2011

Я следовал учебнику по Магме из удивительной Приморской книги , и в какой-то момент мое изображение полностью застряло. Я был в отладчике в тот момент, и я попытался запустить «проверить его» на ToDoDB root части следующего фрагмента:

ToDoDB createDB.
ToDoDB commit: [ ToDoDB root add: ToDoItem new ].
ToDoDB release.

После этого мое изображение перестало отвечать ни на что.

Мне любопытно, почему Магма вела себя таким образом при проверке действий, но мне больше интересно узнать, каковы мои варианты решения этой проблемы? Должен ли я просто выбросить это изображение и начать с нуля? Могу ли я послать какой-нибудь сигнал ОС на ВМ, чтобы уничтожить активный поток или что-то? Smalltalk новичок здесь.

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Шон уже ответил, но вы можете найти его также в совместной книге pharo: http://book.pharo -project.org / book / TipsAndTricks / InterruptKey /

Еще одно замечание, гдевы говорите: «Могу ли я послать какой-нибудь сигнал ОС на ВМ, чтобы убить активный поток или что-то еще? Smalltalk новичок здесь».Обратите внимание, что большинство диалектов Smalltalk имеют так называемую «зеленую нить».То есть, с точки зрения ОС, это только один поток.Smalltalk внутри управляет другим процессом и графиком.Проверьте классы, такие как Processor, Scheduler и т. Д. Итак ... что я говорю, что если вы хотите уничтожить поток извне, вы уничтожите единственный поток, всю ВМ;)

1 голос
/ 25 апреля 2011

Попробуйте отправить прерывание. См. http://wiki.squeak.org/squeak/899 для ярлыка для вашей платформы (то есть базовой ОС).

Кроме того, вы, вероятно, имеете в виду «выбросить этот образ» вместо «эта ВМ». Pharo By Example - отличный бесплатный ресурс для основ Smalltalk, таких как файл образа и изменений, а также виртуальная машина

...