List:General Discussion« Previous MessageNext Message »
From:SGreen Date:October 7 2005 4:00pm
Subject:How thread-safe is mysql_real_connect()?
View as plain text  
(please excuse the double post but I wanted to reach the two audiences I 
thought could help the best)

This is a question about the interpreting the documentation in the manual 
for the C API.
I searched the list archives (all lists) going back 365 days for the terms 
(unquoted): "mysql_real_connect thread" (I also looked for 
alternatives:"mysql_real_connect threaded", "mysql_real_connect multi 
threaded", etc.). I searched on Google Groups for: mysql_real_connect 
thread and found a few interesting hits. However, I am still not 100% 
clear on how to interpret some of the information on this page: 
http://dev.mysql.com/doc/mysql/en/threaded-clients.html

I do a lot of MySQL administration and development using mostly the CLI 
and a few other tools but I am writing a multithreaded client to automate 
certain background processing and I need a bit of advice. According to the 
page in question the function mysql_real_connect() is not "thread-safe". 
Does that simply mean that I cannot call that function from more than one 
thread at a time or does that mean that the connection created by one call 
to the function will be visible to the other threads or what? Just how not 
"thread-safe" is it? 

Each thread will have it's own  MYSQL structure and I will need to use two 
different connections per thread at the same time (am I going to need a 
separate call to mysql_init() for each connection?). I know how to wrap 
all of my calls to mysql_real_connect()  in a critical section or protect 
them with a mutex if that's all I need to do . If it's not that simple and 
I do need to compile and link against another library (as the page 
suggests - sort of) can someone help me to configure my Microsoft Visual 
C++ .NET (v7) to do it? I said "sort-of" because the page also says that 
the binary distributions (which I am working with ) already contain the 
threadsafe library so I wonder if I need to rebuild anything or not.  How 
can I tell?

I am an experienced but not well-seasoned C++ developer (not using c# for 
this). I know the language and can write and debug code just fine (I can 
make stand-alone apps and DLLs all day); it's just that some of the 
complier/linker options and settings that confound me and I am having 
trouble translating the advice on the page into specifics I can work with 
for my environment. 

I know I probably left out some simple pieces of information, just let me 
know and I will respond ASAP. Please remember to CC: both lists on all 
responses.

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine




Thread
How thread-safe is mysql_real_connect()?SGreen7 Oct
  • Re: How thread-safe is mysql_real_connect()?Mark Papadakis7 Oct
    • Re: How thread-safe is mysql_real_connect()?SGreen7 Oct
RE: How thread-safe is mysql_real_connect()?John McCaskey7 Oct
RE: How thread-safe is mysql_real_connect()?John McCaskey11 Oct