Вернул на место дефайны, чтобы можно было тестировать включая и отключая.
Финальная версия: bass comp mod 2015-03-13 upd.7z Дефайны убраны, критическая секция используется безусловно.
Редактировалось 2 раз(а), последний 2018-05-14 13:39:21
Этот топик читают: Гость
Ответов: 4631
Рейтинг: 749
|
|||
карма: 26 |
|
Ответов: 209
Рейтинг: 1
|
|||
Редактировалось 1 раз(а), последний 2020-02-19 17:53:17 |
|||
карма: 0 |
|
Ответов: 4631
Рейтинг: 749
|
|||
Вероятно, да, так, как я выше писал, в первом варианте я забыл включить критическую секцию, которая призвана обезопасить данные при параллельном записи/чтении. То-есть, дефайн отключен - соответствие первому варианту, включен - последнему.
Точные действия - в четвертой строчке: {.$define THREAD_SAFE} Дефайн отключен, критическая секция не используется, соответствие самому первому варианту.{$define THREAD_SAFE} Дефайн включен, используется критическая секция, соответствие самому последнему варианту. Предпочтительно протестировать и отладить именно этот вариант. |
|||
карма: 26 |
|
Ответов: 209
Рейтинг: 1
|
|||
Редактировалось 1 раз(а), последний 2020-02-19 17:53:22 |
|||
карма: 0 |
| ||
Голосовали: | Netspirit |
Ответов: 4631
Рейтинг: 749
|
|||
И всё же видится больше ошибок с выключенным дефайном, что согласуется с теорией - параллельное чтение/запись почти наверняка приводят к ошибкам, если не синхронизировать потоки с помощью критической секции. Поэтому оставь дефайн включенным и ищи ошибки в других компонентах.
В частности, если ты в схеме используешь компонент Thread или компоненты, в которых Thread внутри, следует анализировать ту часть схемы, которая выполняется по событиях из Thread. Я не в курсе, что там у тебя с видео, но тоже если есть некоторый "паттерн" "что-то генерирует данные, а в параллельном потоке что-то их обрабатывает" - обрати внимание. |
|||
карма: 26 |
|
Ответов: 209
Рейтинг: 1
|
|||
Редактировалось 1 раз(а), последний 2020-02-19 17:53:29 |
|||
карма: 0 |
|
Ответов: 209
Рейтинг: 1
|
|||
Редактировалось 1 раз(а), последний 2020-02-19 17:53:35 |
|||
карма: 0 |
|
67