Изображение висит, что дальше?

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

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

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

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


person Dima Sabanin    schedule 25.04.2011    source источник


Ответы (2)


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

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

person Sean DeNigris    schedule 25.04.2011
comment
Спасибо! И спасибо за поправку насчет VM vs image. Уже читаю Pharo By Example и получаю от этого огромное удовольствие. - person Dima Sabanin; 25.04.2011
comment
Добро пожаловать в сообщество Smalltalk :) Не стесняйтесь также задавать вопросы в списках рассылки, где зависают многие основные разработчики, и их легче всего найти и найти на forum.world.st. world.st — это информационный центр для всего, что касается светской беседы (например, книги — многие бесплатные, скринкасты). - person Sean DeNigris; 25.04.2011
comment
1 из 2 NYC Smalltalkers по имени Шон ftw! - person Sean T Allen; 27.04.2011

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

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

person Mariano Martinez Peck    schedule 25.04.2011
comment
Ссылка не работает. - person Mateusz Piotrowski; 17.06.2018