[FPC 2.4.x][DirectSound]Поток "валит" приложение на выходе

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

[FPC 2.4.x][DirectSound]Поток "валит" приложение на выходе

Сообщение Andru » 28.09.2010 11:14:16

Тут лежит архив с демкой(Lazarus+FPC), которая воспроизводит ogg-файл в двух разных потоках. При компиляции демки при помощи FreePascal 2.4.x(пробовал разные версии из этой ветки) - приложение падает, как только первый поток завершает свою работу. В FreePascal 2.2.4 никаких проблем нет.

Содержимое архива:
bin - собранные exe и dll
Lazarus+FPC2.2.4 - файлы проекта для Lazarus 0.9.28.2 и FPC 2.2.4
Lazarus+FPC2.4.0 - файлы проекта для не очень свежего снапшота Lazarus и FPC 2.4.0
source - в хлам порезанные модули от библиотеки ZenGL. Интерес представляет только модуль zgl_sound.pas и функция snd_Proc. Все остальное исследовать бесполезно, т.к. отлично работает при использовании OpenAL вместо DirectSound.

Есть у кого какие идеи? :) Если надо какие-то комментарии/etc. по коду - спрашивайте.
Аватара пользователя
Andru
новенький
 
Сообщения: 13
Зарегистрирован: 28.09.2010 10:42:53

Re: [FPC 2.4.x][DirectSound]Поток "валит" приложение на выходе

Сообщение FedeX » 28.09.2010 14:35:33

Тоже с этим сталкивался, так и не догнал в чём причина - как fastfix сошло sleep(100); (в зависимости от величины dsound буффера) в самом конце работы потока
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Re: [FPC 2.4.x][DirectSound]Поток "валит" приложение на выходе

Сообщение Andru » 08.10.2010 16:31:38

Проблема решилась банально. Разработчики "поломали" менеджер памяти, и теперь в созданных потоках при помощи CreateThread можно ждать неожиданностей если используется RTL-функционал. Использование же BeginThread/EndThread к проблемам не приводит.
Аватара пользователя
Andru
новенький
 
Сообщения: 13
Зарегистрирован: 28.09.2010 10:42:53

Re: [FPC 2.4.x][DirectSound]Поток "валит" приложение на выходе

Сообщение FedeX » 09.10.2010 11:27:28

Использование же BeginThread/EndThread к проблемам не приводит.

Разве EndThread не приведёт к утечке памяти и непредсказуемому состоянию обьектов DSound?
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Re: [FPC 2.4.x][DirectSound]Поток "валит" приложение на выходе

Сообщение Andru » 09.10.2010 13:58:33

Разве EndThread не приведёт к утечке памяти и непредсказуемому состоянию обьектов DSound?

Нет, если только ты не решил в отдельном потоке создавать dsound объект и не освобождая его выходить из потока :)
Аватара пользователя
Andru
новенький
 
Сообщения: 13
Зарегистрирован: 28.09.2010 10:42:53


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 3

Рейтинг@Mail.ru