Author: paul
Date: 2007-03-06 17:58:31 +0100 (Tue, 06 Mar 2007)
New Revision: 5203
Log:
r21060@polar: paul | 2007-03-06 10:35:00 -0600
Better signify that the non-thread-safe-ness of mysql_library_init()
also affects mysql_init().
Modified:
trunk/refman-4.1/apis-c.xml
trunk/refman-5.0/apis-c.xml
trunk/refman-5.1/apis-c.xml
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:21059
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:16997
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:14593
+ 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:21060
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:16997
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:14593
Modified: trunk/refman-4.1/apis-c.xml
===================================================================
--- trunk/refman-4.1/apis-c.xml 2007-03-06 16:57:36 UTC (rev 5202)
+++ trunk/refman-4.1/apis-c.xml 2007-03-06 16:58:31 UTC (rev 5203)
Changed blocks: 2, Lines Added: 24, Lines Deleted: 17; 3212 bytes
@@ -1160,11 +1160,15 @@
In a non-multi-threaded environment, the call to
<literal>mysql_library_init()</literal> may be omitted, because
<literal>mysql_init()</literal> will invoke it automatically as
- necessary. However, in a multi-threaded environment, a race
- condition is possible if <literal>mysql_library_init()</literal>
- is invoked by <literal>mysql_init()</literal>:
- <literal>mysql_library_init()</literal> is not thread-safe, so it
- should be called prior to any other client library call.
+ necessary. However, <literal>mysql_library_init()</literal> is not
+ thread-safe in a multi-threaded environment, and thus neither is
+ <literal>mysql_init()</literal>, which calls
+ <literal>mysql_library_init()</literal>. You must either call
+ <literal>mysql_library_init()</literal> prior to spawning any
+ threads, or else use a mutex to protect the call, whether you
+ invoke <literal>mysql_library_init()</literal> or indirectly via
+ <literal>mysql_init()</literal>. This should be done prior to any
+ other client library call.
</para>
<para>
@@ -4041,24 +4045,27 @@
</para>
<para>
+ In a non-multi-threaded environment, the call to
+ <literal>mysql_library_init()</literal> may be omitted, because
+ <literal>mysql_init()</literal> will invoke it automatically as
+ necessary. However, <literal>mysql_library_init()</literal> is
+ not thread-safe in a multi-threaded environment, and thus
+ neither is <literal>mysql_init()</literal>, which calls
+ <literal>mysql_library_init()</literal>. You must either call
+ <literal>mysql_library_init()</literal> prior to spawning any
+ threads, or else use a mutex to protect the call, whether you
+ invoke <literal>mysql_library_init()</literal> or indirectly via
+ <literal>mysql_init()</literal>. This should be done prior to
+ any other client library call.
+ </para>
+
+ <para>
After your application is done using the MySQL library, call
<literal>mysql_library_end()</literal> to clean up. See
<xref linkend="mysql-library-end"/>.
</para>
<para>
- In a non-multi-threaded environment, the call to
- <literal>mysql_library_init()</literal> may be omitted, because
- <literal>mysql_init()</literal> will invoke it automatically as
- necessary. However, in a multi-threaded environment, a race
- condition is possible if <literal>mysql_library_init()</literal>
- is invoked by <literal>mysql_init()</literal> because
- <literal>mysql_library_init()</literal> is not thread-safe;
- hence, it should be called prior to any other client library
- call.
- </para>
-
- <para>
The <literal>argc</literal> and <literal>argv</literal>
arguments are analogous to the arguments to
<literal>main()</literal>. The first element of
Modified: trunk/refman-5.0/apis-c.xml
===================================================================
--- trunk/refman-5.0/apis-c.xml 2007-03-06 16:57:36 UTC (rev 5202)
+++ trunk/refman-5.0/apis-c.xml 2007-03-06 16:58:31 UTC (rev 5203)
Changed blocks: 2, Lines Added: 24, Lines Deleted: 17; 3212 bytes
@@ -1159,11 +1159,15 @@
In a non-multi-threaded environment, the call to
<literal>mysql_library_init()</literal> may be omitted, because
<literal>mysql_init()</literal> will invoke it automatically as
- necessary. However, in a multi-threaded environment, a race
- condition is possible if <literal>mysql_library_init()</literal>
- is invoked by <literal>mysql_init()</literal>:
- <literal>mysql_library_init()</literal> is not thread-safe, so it
- should be called prior to any other client library call.
+ necessary. However, <literal>mysql_library_init()</literal> is not
+ thread-safe in a multi-threaded environment, and thus neither is
+ <literal>mysql_init()</literal>, which calls
+ <literal>mysql_library_init()</literal>. You must either call
+ <literal>mysql_library_init()</literal> prior to spawning any
+ threads, or else use a mutex to protect the call, whether you
+ invoke <literal>mysql_library_init()</literal> or indirectly via
+ <literal>mysql_init()</literal>. This should be done prior to any
+ other client library call.
</para>
<para>
@@ -4110,24 +4114,27 @@
</para>
<para>
+ In a non-multi-threaded environment, the call to
+ <literal>mysql_library_init()</literal> may be omitted, because
+ <literal>mysql_init()</literal> will invoke it automatically as
+ necessary. However, <literal>mysql_library_init()</literal> is
+ not thread-safe in a multi-threaded environment, and thus
+ neither is <literal>mysql_init()</literal>, which calls
+ <literal>mysql_library_init()</literal>. You must either call
+ <literal>mysql_library_init()</literal> prior to spawning any
+ threads, or else use a mutex to protect the call, whether you
+ invoke <literal>mysql_library_init()</literal> or indirectly via
+ <literal>mysql_init()</literal>. This should be done prior to
+ any other client library call.
+ </para>
+
+ <para>
After your application is done using the MySQL library, call
<literal>mysql_library_end()</literal> to clean up. See
<xref linkend="mysql-library-end"/>.
</para>
<para>
- In a non-multi-threaded environment, the call to
- <literal>mysql_library_init()</literal> may be omitted, because
- <literal>mysql_init()</literal> will invoke it automatically as
- necessary. However, in a multi-threaded environment, a race
- condition is possible if <literal>mysql_library_init()</literal>
- is invoked by <literal>mysql_init()</literal> because
- <literal>mysql_library_init()</literal> is not thread-safe;
- hence, it should be called prior to any other client library
- call.
- </para>
-
- <para>
The <literal>argc</literal> and <literal>argv</literal>
arguments are analogous to the arguments to
<literal>main()</literal>. The first element of
Modified: trunk/refman-5.1/apis-c.xml
===================================================================
--- trunk/refman-5.1/apis-c.xml 2007-03-06 16:57:36 UTC (rev 5202)
+++ trunk/refman-5.1/apis-c.xml 2007-03-06 16:58:31 UTC (rev 5203)
Changed blocks: 2, Lines Added: 24, Lines Deleted: 17; 3212 bytes
@@ -1150,11 +1150,15 @@
In a non-multi-threaded environment, the call to
<literal>mysql_library_init()</literal> may be omitted, because
<literal>mysql_init()</literal> will invoke it automatically as
- necessary. However, in a multi-threaded environment, a race
- condition is possible if <literal>mysql_library_init()</literal>
- is invoked by <literal>mysql_init()</literal>:
- <literal>mysql_library_init()</literal> is not thread-safe, so it
- should be called prior to any other client library call.
+ necessary. However, <literal>mysql_library_init()</literal> is not
+ thread-safe in a multi-threaded environment, and thus neither is
+ <literal>mysql_init()</literal>, which calls
+ <literal>mysql_library_init()</literal>. You must either call
+ <literal>mysql_library_init()</literal> prior to spawning any
+ threads, or else use a mutex to protect the call, whether you
+ invoke <literal>mysql_library_init()</literal> or indirectly via
+ <literal>mysql_init()</literal>. This should be done prior to any
+ other client library call.
</para>
<para>
@@ -4179,24 +4183,27 @@
</para>
<para>
+ In a non-multi-threaded environment, the call to
+ <literal>mysql_library_init()</literal> may be omitted, because
+ <literal>mysql_init()</literal> will invoke it automatically as
+ necessary. However, <literal>mysql_library_init()</literal> is
+ not thread-safe in a multi-threaded environment, and thus
+ neither is <literal>mysql_init()</literal>, which calls
+ <literal>mysql_library_init()</literal>. You must either call
+ <literal>mysql_library_init()</literal> prior to spawning any
+ threads, or else use a mutex to protect the call, whether you
+ invoke <literal>mysql_library_init()</literal> or indirectly via
+ <literal>mysql_init()</literal>. This should be done prior to
+ any other client library call.
+ </para>
+
+ <para>
After your application is done using the MySQL library, call
<literal>mysql_library_end()</literal> to clean up. See
<xref linkend="mysql-library-end"/>.
</para>
<para>
- In a non-multi-threaded environment, the call to
- <literal>mysql_library_init()</literal> may be omitted, because
- <literal>mysql_init()</literal> will invoke it automatically as
- necessary. However, in a multi-threaded environment, a race
- condition is possible if <literal>mysql_library_init()</literal>
- is invoked by <literal>mysql_init()</literal> because
- <literal>mysql_library_init()</literal> is not thread-safe;
- hence, it should be called prior to any other client library
- call.
- </para>
-
- <para>
The <literal>argc</literal> and <literal>argv</literal>
arguments are analogous to the arguments to
<literal>main()</literal>. The first element of
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r5203 - in trunk: . refman-4.1 refman-5.0 refman-5.1 | paul | 6 Mar |