Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
02d847fe
Commit
02d847fe
authored
Jun 13, 2003
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add --with-threads configure option to control threaded libpq.
parent
26188e8c
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
112 additions
and
42 deletions
+112
-42
configure
configure
+63
-13
configure.in
configure.in
+24
-11
doc/src/sgml/installation.sgml
doc/src/sgml/installation.sgml
+10
-1
doc/src/sgml/libpq.sgml
doc/src/sgml/libpq.sgml
+15
-14
src/include/pg_config.h.in
src/include/pg_config.h.in
+0
-3
No files found.
configure
View file @
02d847fe
...
@@ -855,6 +855,7 @@ Optional Packages:
...
@@ -855,6 +855,7 @@ Optional Packages:
--with-libraries=DIRS look for additional libraries in DIRS
--with-libraries=DIRS look for additional libraries in DIRS
--with-libs=DIRS alternative spelling of --with-libraries
--with-libs=DIRS alternative spelling of --with-libraries
--with-pgport=PORTNUM change default port number 5432
--with-pgport=PORTNUM change default port number 5432
--with-threads allow libpq to be thread-safe
--with-tcl build Tcl and Tk interfaces
--with-tcl build Tcl and Tk interfaces
--without-tk do not build Tk interfaces if Tcl is enabled
--without-tk do not build Tk interfaces if Tcl is enabled
--with-tclconfig=DIR tclConfig.sh and tkConfig.sh are in DIR
--with-tclconfig=DIR tclConfig.sh and tkConfig.sh are in DIR
...
@@ -2809,6 +2810,41 @@ echo "$as_me: WARNING: *** Library directory $dir does not exist." >&2;}
...
@@ -2809,6 +2810,41 @@ echo "$as_me: WARNING: *** Library directory $dir does not exist." >&2;}
done
done
IFS
=
$ac_save_IFS
IFS
=
$ac_save_IFS
#
# Enable libpq to be thread-safe
#
echo
"
$as_me
:
$LINENO
: checking allow threaded libpq"
>
&5
echo
$ECHO_N
"checking allow threaded libpq...
$ECHO_C
"
>
&6
# Check whether --with-threads or --without-threads was given.
if
test
"
${
with_threads
+set
}
"
=
set
;
then
withval
=
"
$with_threads
"
case
$withval
in
yes
)
:
;;
no
)
:
;;
*
)
{
{
echo
"
$as_me
:
$LINENO
: error: no argument expected for --with-threads option"
>
&5
echo
"
$as_me
: error: no argument expected for --with-threads option"
>
&2
;
}
{
(
exit
1
)
;
exit
1
;
}
;
}
;;
esac
else
with_threads
=
no
fi
;
echo
"
$as_me
:
$LINENO
: result:
$with_threads
"
>
&5
echo
"
${
ECHO_T
}
$with_threads
"
>
&6
#
#
# Tcl/Tk
# Tcl/Tk
#
#
...
@@ -3550,7 +3586,7 @@ rm -f conftest*
...
@@ -3550,7 +3586,7 @@ rm -f conftest*
#
#
# Pthreads
# Pthreads
#
#
if
test
"
$with_threads
"
=
yes
;
then
echo
"
$as_me
:
$LINENO
: checking for ANSI C header files"
>
&5
echo
"
$as_me
:
$LINENO
: checking for ANSI C header files"
>
&5
echo
$ECHO_N
"checking for ANSI C header files...
$ECHO_C
"
>
&6
echo
$ECHO_N
"checking for ANSI C header files...
$ECHO_C
"
>
&6
if
test
"
${
ac_cv_header_stdc
+set
}
"
=
set
;
then
if
test
"
${
ac_cv_header_stdc
+set
}
"
=
set
;
then
...
@@ -3850,25 +3886,38 @@ echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
...
@@ -3850,25 +3886,38 @@ echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
fi
fi
if
test
$ac_cv_header_pthread_h
=
yes
;
then
if
test
$ac_cv_header_pthread_h
=
yes
;
then
:
cat
>>
confdefs.h
<<
\
_ACEOF
else
#define HAVE_THREADS 1
{
{
echo
"
$as_me
:
$LINENO
: error: pthread.h not found, required for --with-threads"
>
&5
_ACEOF
echo
"
$as_me
: error: pthread.h not found, required for --with-threads"
>
&2
;
}
{
(
exit
1
)
;
exit
1
;
}
;
}
fi
fi
if
test
!
-z
"
$HAVE_THREADS
"
case
$host_os
in
then
netbsd
*
|
bsdi
*
)
case
$host_os
in
# these require no special flags or libraries
# BSD/OS and NetBSD require no special libraries or flags
;;
netbsd
*
|
bsdi
*
)
;;
freebsd2
*
|
freebsd3
*
|
freebsd4
*
)
THREAD_CFLAGS
=
"-pthread"
;;
freebsd2
*
|
freebsd3
*
|
freebsd4
*
)
THREAD_CFLAGS
=
"-pthread"
;;
freebsd
*
)
THREAD_LIBS
=
"-lc_r"
;;
freebsd
*
)
THREAD_LIBS
=
"-lc_r"
;;
linux
*
)
THREAD_LIBS
=
"-lpthread"
linux
*
)
THREAD_LIBS
=
"-lpthread"
THREAD_CFLAGS
=
"-D_REENTRANT"
;;
THREAD_CFLAGS
=
"-D_REENTRANT"
;;
*
)
# other operating systems might fail because they have pthread.h but need
# other operating systems might fail because they have pthread.h but need
# special libs we don't know about yet.
# special libs we don't know about yet.
{
{
echo
"
$as_me
:
$LINENO
: error:
Cannot enable threads on your platform.
Please report your platform threading info to the PostgreSQL mailing lists
so it can be added to the next release. Report any compile or link flags,
or libraries required for threading support.
"
>
&5
echo
"
$as_me
: error:
Cannot enable threads on your platform.
Please report your platform threading info to the PostgreSQL mailing lists
so it can be added to the next release. Report any compile or link flags,
or libraries required for threading support.
"
>
&2
;
}
{
(
exit
1
)
;
exit
1
;
}
;
}
esac
esac
fi
fi
...
@@ -17540,6 +17589,7 @@ s,@CPP@,$CPP,;t t
...
@@ -17540,6 +17589,7 @@ s,@CPP@,$CPP,;t t
s,@GCC@,
$GCC
,;t t
s,@GCC@,
$GCC
,;t t
s,@autodepend@,
$autodepend
,;t t
s,@autodepend@,
$autodepend
,;t t
s,@INCLUDES@,
$INCLUDES
,;t t
s,@INCLUDES@,
$INCLUDES
,;t t
s,@with_threads@,
$with_threads
,;t t
s,@with_tcl@,
$with_tcl
,;t t
s,@with_tcl@,
$with_tcl
,;t t
s,@with_tk@,
$with_tk
,;t t
s,@with_tk@,
$with_tk
,;t t
s,@with_perl@,
$with_perl
,;t t
s,@with_perl@,
$with_perl
,;t t
...
...
configure.in
View file @
02d847fe
dnl Process this file with autoconf to produce a configure script.
dnl Process this file with autoconf to produce a configure script.
dnl $Header: /cvsroot/pgsql/configure.in,v 1.26
0 2003/06/12 16:05:09 tgl
Exp $
dnl $Header: /cvsroot/pgsql/configure.in,v 1.26
1 2003/06/13 23:10:07 momjian
Exp $
dnl
dnl
dnl Developers, please strive to achieve this order:
dnl Developers, please strive to achieve this order:
dnl
dnl
...
@@ -319,6 +319,14 @@ for dir in $LIBRARY_DIRS $SRCH_LIB; do
...
@@ -319,6 +319,14 @@ for dir in $LIBRARY_DIRS $SRCH_LIB; do
done
done
IFS=$ac_save_IFS
IFS=$ac_save_IFS
#
# Enable libpq to be thread-safe
#
AC_MSG_CHECKING([allow threaded libpq])
PGAC_ARG_BOOL(with, threads, no, [ --with-threads allow libpq to be thread-safe])
AC_MSG_RESULT([$with_threads])
AC_SUBST(with_threads)
#
#
# Tcl/Tk
# Tcl/Tk
#
#
...
@@ -544,20 +552,25 @@ AC_SUBST(ELF_SYS)
...
@@ -544,20 +552,25 @@ AC_SUBST(ELF_SYS)
#
#
# Pthreads
# Pthreads
#
#
if test "$with_threads" = yes; then
AC_CHECK_HEADER(pthread.h,
AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --with-threads])])
[AC_DEFINE(HAVE_THREADS, 1, [Define to 1 if you have the threads interface.])])
case $host_os in
if test ! -z "$HAVE_THREADS"
netbsd*|bsdi*)
then
# these require no special flags or libraries
case $host_os in
;;
# BSD/OS and NetBSD require no special libraries or flags
netbsd*|bsdi*) ;;
freebsd2*|freebsd3*|freebsd4*) THREAD_CFLAGS="-pthread" ;;
freebsd2*|freebsd3*|freebsd4*) THREAD_CFLAGS="-pthread" ;;
freebsd*) THREAD_LIBS="-lc_r" ;;
freebsd*) THREAD_LIBS="-lc_r" ;;
linux*) THREAD_LIBS="-lpthread"
linux*) THREAD_LIBS="-lpthread"
THREAD_CFLAGS="-D_REENTRANT" ;;
THREAD_CFLAGS="-D_REENTRANT" ;;
*)
# other operating systems might fail because they have pthread.h but need
# other operating systems might fail because they have pthread.h but need
# special libs we don't know about yet.
# special libs we don't know about yet.
AC_MSG_ERROR([
Cannot enable threads on your platform.
Please report your platform threading info to the PostgreSQL mailing lists
so it can be added to the next release. Report any compile or link flags,
or libraries required for threading support.
])
esac
esac
fi
fi
AC_SUBST(THREAD_LIBS)
AC_SUBST(THREAD_LIBS)
...
...
doc/src/sgml/installation.sgml
View file @
02d847fe
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.13
3 2003/06/11 06:56:06
momjian Exp $ -->
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.13
4 2003/06/13 23:10:07
momjian Exp $ -->
<chapter id="installation">
<chapter id="installation">
<title><![%standalone-include[<productname>PostgreSQL</>]]>
<title><![%standalone-include[<productname>PostgreSQL</>]]>
...
@@ -914,6 +914,15 @@ JAVACMD=$JAVA_HOME/bin/java
...
@@ -914,6 +914,15 @@ JAVACMD=$JAVA_HOME/bin/java
</listitem>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term><option>--with-threads</option></term>
<listitem>
<para>
Allow separate libpq threads to safely control their private connection handles.
</para>
</listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><option>--without-zlib</option></term>
<term><option>--without-zlib</option></term>
<listitem>
<listitem>
...
...
doc/src/sgml/libpq.sgml
View file @
02d847fe
<!--
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.12
3 2003/05/14 03:25:58 tgl
Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.12
4 2003/06/13 23:10:07 momjian
Exp $
-->
-->
<chapter id="libpq">
<chapter id="libpq">
...
@@ -509,11 +509,6 @@ typedef struct
...
@@ -509,11 +509,6 @@ typedef struct
is leaked for each call to <function>PQconndefaults</function>.
is leaked for each call to <function>PQconndefaults</function>.
</para>
</para>
<para>
In <productname>PostgreSQL</productname> versions before 7.0, <function>PQconndefaults</function> returned a pointer
to a static array, rather than a dynamically allocated array. That
was not thread-safe, so the behavior has been changed.
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
...
@@ -2549,17 +2544,23 @@ If the permissions are less strict than this, the file will be ignored.
...
@@ -2549,17 +2544,23 @@ If the permissions are less strict than this, the file will be ignored.
</indexterm>
</indexterm>
<para>
<para>
<application>libpq</application> is thread-safe as of
<application>libpq</application> is thread-safe if the library is
<productname>PostgreSQL</productname> 7.0, so long as no two threads
compiled using the <literal>--with-threads</>
attempt to manipulate the same <structname>PGconn</> object at the same
<filename>configure</filename> command-line option. (You might need to
time. In particular, you cannot issue concurrent commands from different
use other threading command-line options to compile your client code.)
threads through the same connection object. (If you need to run
</para>
concurrent commands, start up multiple connections.)
<para>
One restriction is that no two threads attempt to manipulate the same
<structname>PGconn</> object at the same time. In particular, you cannot
issue concurrent commands from different threads through the same
connection object. (If you need to run concurrent commands, start up
multiple connections.)
</para>
</para>
<para>
<para>
<structname>PGresult</> objects are read-only after creation, and so can be
passed around
<structname>PGresult</> objects are read-only after creation, and so can be
freely between threads.
passed around
freely between threads.
</para>
</para>
<para>
<para>
...
...
src/include/pg_config.h.in
View file @
02d847fe
...
@@ -468,9 +468,6 @@
...
@@ -468,9 +468,6 @@
/* Define to 1 if you have the <termios.h> header file. */
/* Define to 1 if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H
#undef HAVE_TERMIOS_H
/* Define to 1 if you have the threads interface. */
#undef HAVE_THREADS
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
`HAVE_STRUCT_TM_TM_ZONE' instead. */
`HAVE_STRUCT_TM_TM_ZONE' instead. */
#undef HAVE_TM_ZONE
#undef HAVE_TM_ZONE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment