|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Имеется ДЛЛ С++ взаимодействующая с приложением через C-API. Пусть в ДЛЛ три экспорт функции и класс cDB, отвечающий за все взаимодействие с БД Sqlite. 1. Приложение вызывает 1-ю функцию ДЛЛ - создается объект класса cDB и через функции cDB что-то пишется в БД. 2. Приложение вызывает время от времени 2-ю функцию ДЛЛ и через cDB пишет данные в БД. 3. приложение вызывает время от времени 3-ю функцию ДЛЛ и через cDB пишет данные в БД. Однако, нет, не пишет. ДЛЛ видит объект cDB, работает с его функциями, однако не видит соединение с БД в cDB, однако, соединение при этом есть и работает. При этом Sqlitе свободна от какого либо взаимодействия с чем либо, для чего функция м.б. заблокирована - что не дает эффекта. Надо отметить, что функция 2 работает без каких либо проблем (видимо работает в одном потоке с функциями по п.1. Приложение многопоточное, и в каком потоке какая функция ДЛЛ будет вызываться, и сколько их вообще, потоков в приложении, неизвестно. Пока видится решение в создании соединения с БД для каждого потока приложения, но неизвестно сколько их, потоков. Не исключено также, что одна и та-же функция в в ДЛЛ может вызываться разными событиями и потоками в приложении. С другой стороны, потоки, вроде бы, должны работать в одном адресном пространстве и видеть переменные, ведь видим объект cDB в п.3. "Есть многое на свете, друг Горацио, что и не сразу в голову придет." М. Твен "Приключения Геккельбери Финна" ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:14 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Ошибся, следует читать. При этом Sqlitе свободна от какого либо взаимодействия с чем либо, для чего функция по п.2 м.б. заблокирована - что не дает эффекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:17 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
При вызове из тестового приложения последовательно из одного потока все функции работают? Что с одновременным обращением из разных потоков? https://sqlite.org/threadsafe.html ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:28 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAПока видится решение в создании соединения с БД для каждого потока приложения, но неизвестно сколько их, потоков.ну, это известно. Что коннект в дровах не потокозащищеный объект. Поэтому программист обязан либо при старте потока внутрь дать коннект, либо каждый поток берет коннект из пула коннектов. Главное чтобы они не дрались между собой, два потока к одному коннекту. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:28 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Barlone, Круто у sqllite.. авторSerialized . В сериализованном режиме SQLite может безопасно использоваться несколькими потоками без ограничений. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:33 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, не дерутся. Полностью блокируем вызовы БД потока по п.2. По п.3 соединение с БД не видит, хотя по структурам и вспомогательным классам созданным new в классе cDB все отрабатывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:38 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Barlone, из 1-го потока работают, из 2-го нет. Хотя БД сконфигурирована под фулмьютех, пока вопрос одновременности не ставился, пока все по очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:41 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Логируйте с выводом в лог id потока. Хорошим логировщиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:54 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA"Есть многое на свете, друг Горацио, что и не сразу в голову придет." "Есть муторный процесс на свете этом, который кличут все отладкой." "Видит" - "не видит" это бесполезный эмоциональный бред. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 21:57 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, И что даст логгирование? Решение? Ошибиться в программе там просто уже негде. Все выкинуто, функции п.2 и п.3 сделаны абсолютно примитивными и идентичными. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Dimitry Sibiryakov, что здесь отлаживать? Никаких внешних данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 22:27 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВидит" - "не видит" это бесполезный эмоциональный бред.+1 Аффтар.Приведите свои мысли в порядок и сформулируйте вопрос топика. Коротко! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 22:46 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAВсе выкинутоеще выкидывайте. char SQL ЗАЧЕМ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 22:50 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpYUBAВсе выкинутоеще выкидывайте. char SQL ЗАЧЕМ? Это уже не смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 22:51 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharpпропущено... еще выкидывайте. char SQL ЗАЧЕМ? Это уже не смешно.разумеется. Стек ошибки где? Что значит "не видит"? Так домохозяйки говорят. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 22:54 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, не поможет вам стек. Понял, только, что вы любитель демагогии. До свидания. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 23:03 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Добро пожаловать в форум! Хорошо что я вас привел в чувство). Работайте! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 23:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpКруто у sqllite..авторSerializedЧто крутого в организации очереди для строго последовательного исполнения запросов??? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 04:44 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharp, И что даст логгирование? Решение? Ошибиться в программе там просто уже негде. Все выкинуто, функции п.2 и п.3 сделаны абсолютно примитивными и идентичными. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Dimitry Sibiryakov, что здесь отлаживать? Никаких внешних данных.Так не должно бытью Ну SQLite в исходниках же, зайдите уже внутрь sqlite3_exec и посмотрите, что там происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 06:27 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Если так то это банально конечно. Вот смотри. Беру постгри базу и обязан делать коннект на поток. Так как не Thread-safe. А тут заявлено что пофигу. Круче? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 07:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Посмотри что возвращает sqlite3_threadsafe() ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 08:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Фигня этот режим многопоточности в данной конкретной бд. Это не поможет если в клиентском коде бардак. http://www.prog.org.ru/topic_30824_45.html Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 08:29 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Ну а бардак в прикладном коде потому что YUBAно неизвестно сколько их, потоков. Не исключено также, что одна и та-же функция в в ДЛЛ может вызываться разными событиями и потоками в приложении. Надо четко знать, что у нас thread safe и что нет. Как MS в шарпе ввел даже слово async чтобы помечать)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 08:33 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima TПосмотри что возвращает sqlite3_threadsafe() Сразу и смотрел =1. С этой стороны проблем не должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 12:11 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADima TПосмотри что возвращает sqlite3_threadsafe() Сразу и смотрел =1. С этой стороны проблем не должно быть.ваши проблемы мы "не видим", так же как вы и пишите в заголове сообщения. Увы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 12:39 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADima TПосмотри что возвращает sqlite3_threadsafe() Сразу и смотрел =1. С этой стороны проблем не должно быть. Если правильно понимаю, то https://sqlite.org/compile.html#threadsafe SQLITE_THREADSAFE=1 sets the default threading mode to Serialized. Получается все должно работать. Возможно проблема совсем в другом, например обращение к БД происходит до открытия БД. Ошибка какая в err ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 13:11 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima TВозможно проблема совсем в другом, например обращение к БД происходит до открытия БД. Ошибка какая в err ? Точно, что после открытия БД. err - не знаю. Try...catch надо ставить, а как и куда err вытащить неизвестно. Само приложение пишет, что не определен указатель - а единственный указатель, это и есть sqlite3 *db - сейчас не могу посмотреть в оригинале. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 13:44 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBATry...catch надо ставить, а как и куда err вытащить неизвестно.тяжелый случай. YUBAпишет, что не определен указатель Скрин сюда того где ОНО САМО пишет. YUBAсейчас не могу посмотреть в оригинале.вот когда будешь рядом с компом и продоложим. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 13:47 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Найди место на самом вверху в ГУИ, где происходит mess про указатель. Потом в коде например buttonClick.... Оберни все это место try. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 13:52 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADima TВозможно проблема совсем в другом, например обращение к БД происходит до открытия БД. Ошибка какая в err ? Точно, что после открытия БД. err - не знаю. Try...catch надо ставить, а как и куда err вытащить неизвестно. Само приложение пишет, что не определен указатель - а единственный указатель, это и есть sqlite3 *db - сейчас не могу посмотреть в оригинале. Не должно быть никаких исключений. Проверяй в начале Код: plaintext 1.
err тоже указатель, ты как его объявил? Пример обработки ошибок отсюда Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:03 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima TНе должно быть никаких исключенийсама база не выдаёт каких нибудь. Data not found... /FK? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:28 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpDima TНе должно быть никаких исключенийсама база не выдаёт каких нибудь. Data not found... /FK? Насколько понимаю для этого сделан возврат ошибок. Если не путаю, SQLite написана на C, а в C нет исключений, они в С++. Да и в документации ни слова про исключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:36 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima T, Да. Они где то выше уровнем. Я по диагонали гугл глянул - андроид и т.д. Еще странно что про try автор первый сказал). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:44 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima T, да, понятно. Но это ДЛЛ - нет там ни консоли ни ГУИ. Куда я stdout? Пока все штатно, я могу в приложение текст возвратить, и оно выведет (открытие БД, в частности, и пр. - это все сделано). В данном случае до текста не доходит, и выбрасывается - не определен указатель - это поток приложения пишет, до err дело не доходит. Даже на err= sqlite3_prepare_v2(db, "begin;", 10, &ppStmt, &tail); Если оставить обе функции, то одна пишет в БД, вторая исключение дает. ДЛЛ продолжает исполняться. И получаем вывод типа: ОК, не опр ук-тель, не опр ук-тель, не опр ук-тель, не опр ук-тель, ОК. Функции уже просто идентичны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:47 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAНо это ДЛЛ - нет там ни консоли ни ГУИ. Куда я stdout?в лог файл все пишут. YUBAмогу в приложение текст возвратить,наверно сначала вызов самой длл идет? Вот там stdout есть и перехват exception есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:56 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADima T, да, понятно. Но это ДЛЛ - нет там ни консоли ни ГУИ. Куда я stdout? В файл тоже нельзя писать? Навтыкай записей после каждой строки, пиши все подряд, что вызываешь, какие значения параметров. fflush() не забывай вызывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:01 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpнаверно сначала вызов самой длл идет? Вот там stdout есть и перехват exception есть. Вызов функций в ДЛЛ - все в норме. Вся работа с БД в классе, поток класс видит, все функции класса штатно исполняются, затык только на указателе sqlite3 *db; Может это имеет значение - поток в котором коннектится ДЛЛ и создается подключение к БД отсоединен (detach), и крутится в ДЛЛ в цикле. Через него вызываются доступные функции приложения. Остальные потоки - события приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:18 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAВызов функций в ДЛЛ - все в норме.мы это не видим. Если ГУИ стартануло поток, то он пройдет через 100 длл вызовов и вернется опять в ГУИ. YUBAМожет это имеет значениеимеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:31 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAdetachесли есть тяжелые работы, то ТОЛЬКО ДЛЯ НИХ берется ОДИН ПОТОК НА РАБОТУ. Либо из пула, либо заготовить штук 20, либо при аттаче потока он сам берет коннект до конца работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:34 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAОстальные потоки - события приложения.всё ГУИ это один основной поток. И все события в нем тоже. Итого у вас один основной и один дополнительный. Вот проверяйте это по логам с выводом id thread ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:38 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpDima TНе должно быть никаких исключенийсама база не выдаёт каких нибудь. Data not found... /FK? Сама база, тем более sqlite , ничего не может выдавать ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:39 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Ролг Хупин, Вау! Шарпист по теме слово сказал) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:41 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Возможно у вас основной полез в доп.поток или наоборот. Напрямую они лезть не должны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:42 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpесли есть тяжелые работы, то ТОЛЬКО ДЛЯ НИХ берется ОДИН ПОТОК НА РАБОТУ. Либо из пула, либо заготовить штук 20, либо при аттаче потока он сам берет коннект до конца работы. Детач поток выдается нам приложением для подключения ДЛЛ, конфигурации и пр. Завершение этого потока - эквивалентна отключению ДЛЛ от приложения. Его надо держать до конца работы с ДЛЛ. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:46 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpРолг Хупин, Вау! Шарпист по теме слово сказал) П. да, ты сказал слово Фильм "Сережа", 1960 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:53 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharpесли есть тяжелые работы, то ТОЛЬКО ДЛЯ НИХ берется ОДИН ПОТОК НА РАБОТУ. Либо из пула, либо заготовить штук 20, либо при аттаче потока он сам берет коннект до конца работы. Детач поток выдается нам приложением для подключения ДЛЛ, конфигурации и пр. Завершение этого потока - эквивалентна отключению ДЛЛ от приложения. Его надо держать до конца работы с ДЛЛ.тут не знаю. Смотрите логи как выше сказал на вызов перекрестный. Будет райзе, либо ваша ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:54 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAДетач поток выдается нам приложением для подключения ДЛЛ, конфигурации и пр. Завершение этого потока - эквивалентна отключению ДЛЛ от приложения. Ага, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не инициализированным объектам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 17:43 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovАга, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не инициализированным объектам. Ерунда, все инициализировано. Никаких ага.) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 17:54 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Даже цели этого действа не прнимаю. У нас, что, из экзешника нельзя поток создать и внутри. длл вызвать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADimitry SibiryakovАга, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не инициализированным объектам. Ерунда, все инициализировано. Никаких ага.)а что за ошибку тогда обсуждаем? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpа что за ошибку тогда обсуждаем? почитайте тему с начала, повторяться не буду. И кто сказал, что где-то ошибка? Здесь надо не ошибку искать, а думать, как писать в БД через одно соединение из разных потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:17 |
|
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 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAУже показывал,еще раз покажите YUBAВыводит не мой код, Дак показывали или не можете или не хотите? Троичная логика) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 21:59 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, см. предыдущие страницы темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:07 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharp, см. предыдущие страницы темы.ну ожидайте ответов, программист) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, а я и не жду.)) Пока все мои темы на форуме решались самостоятельно. Но, тем не менее, обсуждение полезно, отбрасывается множество версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:14 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Блин, ну логика то у вас должна быть? ... Решались самостоятельно, но версии отбрасывались форумом))). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:22 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, здесь пока нет рабочих версий.)) Есть, в основном демагогия. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:24 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharp, здесь пока нет рабочих версий.)) Есть, в основном демагогия.галстук съешь потом? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:33 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, в этой теме лишь 2 человека что-то реально думают. Остальные пока надувают щеки и делают умный вид.)) Вы, в том числе.) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:37 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Ваше мнение очень важно для нас (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:43 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, до свидания. Не понял сразу, что вы пофлудить пришли. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 22:46 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017590]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 191ms |
0 / 0 |