Добрый день.
Пытаюсь перенести FPC 2.0.4 на новую ОС, и возникает проблема - многопоточные приложения какой-либо сложности не работают вообще, выдавая "At end of ExceptionAddresStack", и завершаясь. Однопоточные программы разной сложности работают нормально.
От того вопрос - что должно быть реализовано в threadmanager RTL и в самой ОС, чтобы многопоточные программы на FPC работали? Сейчас в threadmanager есть только инициализация, создание и heapmutex.
Требования к RTL и ОС для многопоточных приложений?
Модератор: Модераторы
может попробовать перенести fpc 2.3.1 на новую ОС?
- bw
- постоялец
- Сообщения: 359
- Зарегистрирован: 01.12.2005 10:36:23
- Откуда: Усть-Илимск
- Контактная информация:
Я портировал 2.2.0 и 2.2.4 на KolibiriOS, проблем не встретил.
По исходникам RTL очевидно, где и как должен быть реализован соотв. функционал.
p.s. Смотреть в systhrd.inc, если что. И делать по аналогии для своей ОС.
..bw
По исходникам RTL очевидно, где и как должен быть реализован соотв. функционал.
p.s. Смотреть в systhrd.inc, если что. И делать по аналогии для своей ОС.
..bw
Пытался делать по аналогии, но отсутствие документации сильно мешает пониманию.
Например, всё, что связано с threadvar я так и не смог вразумительно распутать, и потому не понимаю, что и куда выделять.
Потому *AllocateThreadVars выглядит совсем бессмысленно, и не ясно, что происходит в *RelocateThreadvar.
Вышенаписанное уже не важно.
Нашел описание (http://www.freepascal.org/docs-html/prog/progse46.html), исправил, всё работает.
Например, всё, что связано с threadvar я так и не смог вразумительно распутать, и потому не понимаю, что и куда выделять.
Потому *AllocateThreadVars выглядит совсем бессмысленно, и не ясно, что происходит в *RelocateThreadvar.
Вышенаписанное уже не важно.
Нашел описание (http://www.freepascal.org/docs-html/prog/progse46.html), исправил, всё работает.
А что за ОС? Секретная? 
v-t-l писал(а):А что за ОС? Секретная?
Нет, доморощенная.
Можно найти тут:
http://forum.osdev.org/viewtopic.php?f=2&t=20761
Написана в основном на FPC.
