Hi, I'm using the mysqlclient_r library to access the database. I have written some code as an interface to access the MYSQL databse and have written the following test code to test the library. I'm using Linux 2.4.4-4 as the platform.
I'm putting locks around my entire test case so that two threads do not share the same connection at the same time. as suggested earlier I have also built the library with local pthreads i.e. --with-pthread=-pthread or --with-pthread=-lpthread This code still is not working when compiled with libmysqlclient_r but works with libmysqlclient. The following is the code with places of my_init(), my_init_thread(), and my_thread_end(). Since I'm new to using this library I would be grateful for any kind of guidance on where I'm going wrong. regards, void * threadTest2(void *jl){ int *te = (int *)jl; int t1 = (*te); // my_thread_init(); test2(t1); my_thread_end(); pthread_exit((void *)NULL); } void startThreadsTest2(){ Init(); my_init(); int ThreadNum[MAXTHREADS]; int i; for(i = 0; i < MAXTHREADS; i++) ThreadNum[i] = (i + 1); pthread_t threads[MAXTHREADS]; for(i = 0; i < MAXTHREADS; i++){ my_thread_init(); pthread_create(&threads[i], NULL, threadTest2, (void*) (ThreadNum +i)); } for(i = MAXTHREADS - 1; i >=0 ; i--) pthread_join(threads[i], NULL); cout << endl << endl; for(i = 0; i < MAXTHREADS; i++) cout << "SuccessQuery[" << (i + 1) << "]: " << SUCCESS_QUERY[i] << endl; cout << endl << endl; for(i = 0; i < MAXTHREADS; i++) cout << "failureQuery[" << (i + 1) << "]: " << FAILURE_QUERY[i] << endl; } void test2(int l = 0 ){ //LOCK pthread_mutex_lock(&lockmutex); FASDBConnection conn1; conn1.Connect("lithium.ini.cmu.edu","shivam_test","shivam","shivam_pass"); if(conn1.isConnected()) cout << "Success Connection" << endl; else cout << "Failed Connection" << endl; for(int i = 0; i < 1000; i++){ string query = "SELECT * from STUDENTS "; FASDBStatement *r = conn1.createStatement(); FASDBResult rr; rr = r->ExecuteQuery(query); int num = rr.getNumRows(); if(num == 0){ cout << "Query failed number: " << (i+1); if(l != 0){ // FAILURE_QUERY[l-1]++; cout << " Failure Thread Num: " << l; } cout << endl; delete r; continue; } // SUCCESS_QUERY[l-1]++; cout << "QUERY NO." << i << endl; while(rr.nextRow()){ FASDBRow row = rr.getCurrentRow(); cout << setw(10) << row.getString(0); cout << setw(10) << row.getString(1); cout << setw(10) << row.getInteger(2) << endl; } cout << "Index : " << (i+1) << "ThreadID: " << l << endl; delete r; } conn1.Close(); //UNLOCK pthread_mutex_unlock(&lockmutex); } --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php