powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Sqlite в многопоточной программе.
25 сообщений из 85, страница 3 из 4
Sqlite в многопоточной программе.
    #39841579
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBADimitry SibiryakovАга, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не
инициализированным объектам. Ерунда, все инициализировано. Никаких ага.)
Я тоже к этому диагнозу склоняюсь. Не там ты ошибку ищешь.

Ты пойми что если бы ты корректно вызывал SQLite, то получал ошибки так как задумано разработчиками SQLite, а не исключения от ОС.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841583
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAдумать, как писать в БД через одно соединение из разных потоков.ого. ТЗ уже сменилось.
Через одни ворота это просто, но не практично. Почему не через 10 соединений?
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841586
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,
1. Два потока к одному ресурсу = ставим критическую секцию.
2. У тебя гуи в базу не пишет. Значит если нет ошибки, то в базу пишет ОДИН фоновый поток.
Опять гадаем на кофе.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841589
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЯ тоже к этому диагнозу склоняюсь. Не там ты ошибку ищешь.
Ты пойми что если бы ты корректно вызывал SQLite, то получал ошибки так как задумано разработчиками SQLite, а не исключения от ОС. Ну, хорошо.
Две идентичные функции в одном классе (cDB) пишущие в БД и вызываемые из разных потоков. Обе функции видят функциональность класса. Одна функция стабильно пишет в БД, другая, в другом потоке, стабильно не видит указатель sqlite *db; - уберем работу с базой, и она будет штатно выполняться. Разница только в том, что инициализация класса, БД и вызов 1-й функции производится в одном потоке, а вызов 2-й функции в другом. Если бы они были в разных адресных пространствах, то и класс cDB второй поток тоже бы не видел, но он его и его переменные видит, кроме указателя на БД.
И как можно некорректно вызвать Sqlite? - Open, и далее, либо exec(), либо prepare(). Но опять, функции сейчас сделаны примитивней некуда, и абсолютно идентичны.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841594
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpого. ТЗ уже сменилось.
Через одни ворота это просто, но не практично. Почему не через 10 соединений? Читайте доки на Sqlite - такая возможность есть без каких либо побочных эффектов. В нашем случае пока им даже неоткуда взяться.))
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841596
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAРазница только в том, что инициализация класса, БД и вызов 1-й функции производится в
одном потоке, а вызов 2-й функции в другом.

И вот этот вызов выполняется раньше, чем первый поток дойдёт до инициализации указателя.
Поскольку ничто не гарантирует очерёдности их выполнения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841597
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, еще раз, это ерунда.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841600
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAэто ерунда.

Это реальность многопоточного программирования, детка.
Пока в одном потоке выполняется sqlite* db = sqlite_init(), второй поток уже доходит до
sqlite_exec(db) и получает ещё непроинициализированный db.

Пока ты этого не поймёшь - не суйся в потоки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841607
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAPetroNotC Sharpого. ТЗ уже сменилось.
Через одни ворота это просто, но не практично. Почему не через 10 соединений? Читайте доки на Sqlite - такая возможность есть без каких либо побочных эффектов. В нашем случае пока им даже неоткуда взяться.))сказал тот кто пришел с побочкой.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841608
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, еще раз - ахинея.
вывод в приложениии - ОК, ошибка, ошибка, ошибка, ... ОК, ошибка, ....., ОК.
ОК - запись в БД произведена. Ошибка (что-то там - unknown unhandler....) - не видит указателя на БД. Где вы здесь увидели неинициализированную БД?
Сейчас пока вообще все сломал.)
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841614
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBADimitry Sibiryakov, еще раз, это ерунда.
YUBAЕсли бы они были в разных адресных пространствах,ты только про адресное в курсе?
А про стек потока?
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841615
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBADimitry Sibiryakov, еще раз - ахинея.красным напиши. Или тут шрифт побольше делают дети.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841616
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAСейчас пока вообще все сломал.)ты не торопись. Завтра залогируй и приходи.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841624
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, там логировать нечего все известно с точностью до оператора prepare() или любого другого обращения к db. Ниче нового, кроме того, что указателя нет мы не увидим, а это и так известно.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841628
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpты только про адресное в курсе?
А про стек потока? Точно, угадал. У меня вообще другая специальность и это не программирование.)
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841632
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAPetroNotC Sharpты только про адресное в курсе?
А про стек потока? Точно, угадал. У меня вообще другая специальность и это не программирование.)ну тогда перед глобальным указателем на базу попробуй поставить
volatile
Чтобы компилятор ее в стек не переместил.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841633
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAтам логировать нечего все известно ся например не понял, почему 2 потока, если один для гуи но не походов же в базу?
В базу ехе фоновый создает. Так?
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841634
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAPetroNotC Sharpты только про адресное в курсе?
А про стек потока? Точно, угадал. У меня вообще другая специальность и это не программирование.)

вы мент?
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841635
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,
У тебя указатель на базу NULL.
Значит надо кусок кода инициализации логи с id потока.
Они глобальный pointer одновременно ставят?
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841642
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAспециальность
Просто терминология странная с этим словом "не видит")))) LOL
Ничего личного.
assert("не видит") ;н
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841652
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBADimitry Sibiryakov, еще раз - ахинея.
вывод в приложениии - ОК, ошибка, ошибка, ошибка, ... ОК, ошибка, ....., ОК.
ОК - запись в БД произведена. Ошибка (что-то там - unknown unhandler....) - не видит указателя на БД. Где вы здесь увидели неинициализированную БД?
Сейчас пока вообще все сломал.)Вы код который выводит это самое "что-то там - unknown unhandler...." и что перед этим делается покажите.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841654
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneВы код который выводит это самое "что-то там - unknown unhandler...." и что перед этим делается покажите.
Уже показывал, любое обращение к БД - _exec() или _prepare(), после чего выбрасывается из функции. Выводит не мой код, выводит приложение к которому подключена ДЛЛ, по собственной инициативе.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841656
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA Выводит не мой код, выводит приложение к которому подключена ДЛЛ, по собственной инициативе.А вы с помощью плясок с бубном пытаетесь исправить ошибку в чужом коде, которого не видите? Ну удачи.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841660
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone, плевать мне, есть у них ошибки, нет у них ошибок. Мне в любом случае работать с ним надо.
...
Рейтинг: 0 / 0
Sqlite в многопоточной программе.
    #39841666
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAУже показывал,еще раз покажите
YUBAВыводит не мой код,
Дак показывали или не можете или не хотите?
Троичная логика)
...
Рейтинг: 0 / 0
25 сообщений из 85, страница 3 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / Sqlite в многопоточной программе.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]