FPC+многопоточность
Модератор: Модераторы
FPC+многопоточность
Здравствуйте, столкнулся с неприятной проблемой: программа (игра), написанная на паскале с использованием SDL падает в непредсказуемый момент времени при запуске второго потока. Необходимые синхронизации доступа к данным сделаны. Та же программа, скомпилированная при помощи Delphi работает стабильно. Падение, кстати, выражается не в исключении, а в простом выходе с сообщением "At end of ExceptionAddresStack". Поиск по "ExceptionAddresStack" в гугле выдаёт одни корки
ума не приложу, что делать. Может это баг компилятора? Подскажите, пожалуйста, в чём может быть дело.
Немного почитал про многопоточность в freepascal... Возможно, проблема в том, что поток я создаю средствами SDL, а не rtl фрипаскаля? Но в потоке я не использую классы и динамическую память, поэтому косяков по идее быть не должно не смотря на то что компилятор не знает что относится к отдельному потоку, что нет.
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
В Delphi многопоточность менеджера памяти надо включать, если не использовать TThread и еще какой-то встроенный метод.
isMultiThreaded := True;
Иначе возможны глюки даже со string'ами.
В FPC скорее всего тоже. Если поток создается левыми средствами (SDL), то компилятор не может определить многопоточность, надо ему сказать.
isMultiThreaded := True;
Иначе возможны глюки даже со string'ами.
В FPC скорее всего тоже. Если поток создается левыми средствами (SDL), то компилятор не может определить многопоточность, надо ему сказать.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
