Справочное руководство по MySQL версии 4.1.1-alpha


8.4.8 Как создать клиентскую программу с потоками - часть 3


При вызове функции MySQL до того, как поток вызвал функции mysql_init() или mysql_connect(), данный поток в этом случае не будет иметь необходимых специальных переменных потока и, вероятно, программа рано или поздно умрет с дампом оперативной памяти.

Для более плавной работы программы необходимо выполнить следующие действия:

  1. Вызвать функцию my_init() при запуске данной программы, если она вызывает какую-либо другую функцию MySQL до вызова функции mysql_real_connect().

  2. Вызвать функцию mysql_thread_init() в обработчике потока до вызова иной функции MySQL.

  3. В данном потоке вызвать функцию mysql_thread_end() перед вызовом pthread_exit(). Это освободит память, занятую специальными переменными потока для MySQL.

    Следует учитывать, что можно получить некоторые ошибки из-за наличия неопределенных символов при связывании клиента с библиотекой libmysqlclient_r. В большинстве случаев это происходит вследствие того, что в строку связывания/компилирования не включены библиотеки потока.




    - Начало -  - Назад -  - Вперед -



    Книжный магазин