|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADimitry SibiryakovАга, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не инициализированным объектам. Ерунда, все инициализировано. Никаких ага.) Я тоже к этому диагнозу склоняюсь. Не там ты ошибку ищешь. Ты пойми что если бы ты корректно вызывал SQLite, то получал ошибки так как задумано разработчиками SQLite, а не исключения от ОС. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:37 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAдумать, как писать в БД через одно соединение из разных потоков.ого. ТЗ уже сменилось. Через одни ворота это просто, но не практично. Почему не через 10 соединений? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:46 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, 1. Два потока к одному ресурсу = ставим критическую секцию. 2. У тебя гуи в базу не пишет. Значит если нет ошибки, то в базу пишет ОДИН фоновый поток. Опять гадаем на кофе. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:51 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima TЯ тоже к этому диагнозу склоняюсь. Не там ты ошибку ищешь. Ты пойми что если бы ты корректно вызывал SQLite, то получал ошибки так как задумано разработчиками SQLite, а не исключения от ОС. Ну, хорошо. Две идентичные функции в одном классе (cDB) пишущие в БД и вызываемые из разных потоков. Обе функции видят функциональность класса. Одна функция стабильно пишет в БД, другая, в другом потоке, стабильно не видит указатель sqlite *db; - уберем работу с базой, и она будет штатно выполняться. Разница только в том, что инициализация класса, БД и вызов 1-й функции производится в одном потоке, а вызов 2-й функции в другом. Если бы они были в разных адресных пространствах, то и класс cDB второй поток тоже бы не видел, но он его и его переменные видит, кроме указателя на БД. И как можно некорректно вызвать Sqlite? - Open, и далее, либо exec(), либо prepare(). Но опять, функции сейчас сделаны примитивней некуда, и абсолютно идентичны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:03 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpого. ТЗ уже сменилось. Через одни ворота это просто, но не практично. Почему не через 10 соединений? Читайте доки на Sqlite - такая возможность есть без каких либо побочных эффектов. В нашем случае пока им даже неоткуда взяться.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:07 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAРазница только в том, что инициализация класса, БД и вызов 1-й функции производится в одном потоке, а вызов 2-й функции в другом. И вот этот вызов выполняется раньше, чем первый поток дойдёт до инициализации указателя. Поскольку ничто не гарантирует очерёдности их выполнения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:10 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, еще раз, это ерунда. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:12 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAэто ерунда. Это реальность многопоточного программирования, детка. Пока в одном потоке выполняется sqlite* db = sqlite_init(), второй поток уже доходит до sqlite_exec(db) и получает ещё непроинициализированный db. Пока ты этого не поймёшь - не суйся в потоки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:19 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharpого. ТЗ уже сменилось. Через одни ворота это просто, но не практично. Почему не через 10 соединений? Читайте доки на Sqlite - такая возможность есть без каких либо побочных эффектов. В нашем случае пока им даже неоткуда взяться.))сказал тот кто пришел с побочкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:28 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, еще раз - ахинея. вывод в приложениии - ОК, ошибка, ошибка, ошибка, ... ОК, ошибка, ....., ОК. ОК - запись в БД произведена. Ошибка (что-то там - unknown unhandler....) - не видит указателя на БД. Где вы здесь увидели неинициализированную БД? Сейчас пока вообще все сломал.) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:29 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADimitry Sibiryakov, еще раз, это ерунда. YUBAЕсли бы они были в разных адресных пространствах,ты только про адресное в курсе? А про стек потока? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:33 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADimitry Sibiryakov, еще раз - ахинея.красным напиши. Или тут шрифт побольше делают дети. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:34 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAСейчас пока вообще все сломал.)ты не торопись. Завтра залогируй и приходи. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 19:35 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, там логировать нечего все известно с точностью до оператора prepare() или любого другого обращения к db. Ниче нового, кроме того, что указателя нет мы не увидим, а это и так известно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 20:02 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpты только про адресное в курсе? А про стек потока? Точно, угадал. У меня вообще другая специальность и это не программирование.) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 20:07 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharpты только про адресное в курсе? А про стек потока? Точно, угадал. У меня вообще другая специальность и это не программирование.)ну тогда перед глобальным указателем на базу попробуй поставить volatile Чтобы компилятор ее в стек не переместил. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 20:19 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAтам логировать нечего все известно ся например не понял, почему 2 потока, если один для гуи но не походов же в базу? В базу ехе фоновый создает. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 20:22 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharpты только про адресное в курсе? А про стек потока? Точно, угадал. У меня вообще другая специальность и это не программирование.) вы мент? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 20:24 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, У тебя указатель на базу NULL. Значит надо кусок кода инициализации логи с id потока. Они глобальный pointer одновременно ставят? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 20:25 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAспециальность Просто терминология странная с этим словом "не видит")))) LOL Ничего личного. assert("не видит") ;н ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 20:41 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADimitry Sibiryakov, еще раз - ахинея. вывод в приложениии - ОК, ошибка, ошибка, ошибка, ... ОК, ошибка, ....., ОК. ОК - запись в БД произведена. Ошибка (что-то там - unknown unhandler....) - не видит указателя на БД. Где вы здесь увидели неинициализированную БД? Сейчас пока вообще все сломал.)Вы код который выводит это самое "что-то там - unknown unhandler...." и что перед этим делается покажите. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 21:18 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
BarloneВы код который выводит это самое "что-то там - unknown unhandler...." и что перед этим делается покажите. Уже показывал, любое обращение к БД - _exec() или _prepare(), после чего выбрасывается из функции. Выводит не мой код, выводит приложение к которому подключена ДЛЛ, по собственной инициативе. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 21:24 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA Выводит не мой код, выводит приложение к которому подключена ДЛЛ, по собственной инициативе.А вы с помощью плясок с бубном пытаетесь исправить ошибку в чужом коде, которого не видите? Ну удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 21:29 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Barlone, плевать мне, есть у них ошибки, нет у них ошибок. Мне в любом случае работать с ним надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 21:38 |
|
|
start [/forum/topic.php?fid=57&msg=39841660&tid=2017590]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 427ms |
0 / 0 |