Есть программа с использованием потоков pthread.
Компилирую ее и она прекрасно работает.
Другая программа (без использования потоков pthread) отлично работает с
mysql базой данных.
Когда я пытаюсь соединить их в одну программу, то при выполнении функции
mysql_real_connect происходит segmentation fault.
В документации к mysql нашел инфу о том, что все функции в mysql,
кроме mysql_real_connect, по умолчанию поддерживают потоки. Что бы
сделать mysql_real_connect поддерживающую потоки, надо пересобрать
mysql с опцией --enable-thread-safe-client, что бы появилась многопоточная библиотека libmysqlclient_r;
Я так и сделал, а затем свою клиентскую программу откомпилил с опциями
gcc -o test test.c -lpthread -L/usr/lib/mysql -lmysqlclient_r -lz -lnsl.
В самой программе (так сказано в документации к mysql) в самом ее начале
(перед созданием потоков) вписал:
char dbpasswd[12] = "123123";
MYSQL db;
mysql_init(&db);
mysql_thread_init();
mysql_real_connect(&db, "localhost", "dbuser", dbpasswd, "dbname", 0, NULL, 0);
При выполнении mysql_real_connect программа выпадает с segmentation fault.
В параметрах mysql_real_connect ничего не менял, то есть до подключения к
программе -lpthread соединение с mysql сервером и работа с базами данных
проходили отлично с теми же параметрами mysql_real_connect.
Версия mysql - 4.0.20.
Как заставить mysql нормально работать с pthread или что я не так делаю?
Заранее спасибо за любые советы.
Ответ на:
комментарий
от Deleted
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум pthread Segmentation fault (2007)
- Форум C++, pthread, curl, Curl_raw_nequal() Segmentation fault (2013)
- Форум Segmentation fault (2016)
- Форум Segmentation fault (2011)
- Форум segmentation fault (2018)
- Форум Segmentation fault (2011)
- Форум Segmentation Fault (2022)
- Форум segmentation fault (2022)
- Форум Segmentation fault (2010)
- Форум Segmentation fault (2009)