LINUX.ORG.RU

Berkeley DB && thread


0

0

Проблема с сабж. Базу изменяют два потока: один добавляет, второй удаляет. Проблема возникает достаточно недетерминировано, иногда прога подвисает при удаление, иногда вылетает при закрытии. После возникновения ошибки программа перестает работать вообще: подвисает при любой операции. Кто-нибудь сталкивался с этой проблемой.

anonymous

ну напиши свои lock'и или почитай, можно-ли эту BerkeleyDB
пользовать вот так просто надеясь что можно и читать и писать
в любое время, то-есть она сама блокировки обеспечивает.

anonymous
()

Berkeley DB обеспечивает thread-safe сама, для этого нужно задать флаг DB_THREAD, но дело не в этом. Флаг я естественно установил и все ограничения указаные в доке выполнил (транзакция не пересекает границы потока и т.д.), но проблема то возникла. Кстати блокировка вручную тоже не помогла.

anonymous
()

Извини, глобальных переменных у тебя нет?
Может их под мьютексы положить?

BlackRabit
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.