mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-10 05:37:30 +08:00
50 lines
1.6 KiB
Plaintext
50 lines
1.6 KiB
Plaintext
This program should be run by developers wishing to enable threading on
|
|
new platforms.
|
|
|
|
Run thread_test program to determine if your native libc functions are
|
|
thread-safe, or if we should use *_r functions or thread locking.
|
|
|
|
To use this program, you must:
|
|
|
|
o run "configure --enable-thread-safety"
|
|
o compile the main source tree
|
|
o compile and run this program
|
|
|
|
If your platform requires special thread flags that are not tested by
|
|
/config/acx_pthread.m4, add PTHREAD_CFLAGS and PTHREAD_LIBS defines to
|
|
your template/${port} file.
|
|
|
|
Windows Systems
|
|
===============
|
|
|
|
Windows systems do not vary in their thread-safeness in the same way that
|
|
other systems might, nor do they generally have pthreads installed, hence
|
|
on Windows this test is skipped by the configure program (pthreads is
|
|
required by the test program, but not PostgreSQL itself). If you do wish
|
|
to test your system however, you can do so as follows:
|
|
|
|
1) Install pthreads in you Mingw/Msys environment. You can download pthreads
|
|
from ftp://sources.redhat.com/pub/pthreads-win32/.
|
|
|
|
2) Build the test program:
|
|
|
|
gcc -o thread_test.exe \
|
|
-D_REENTRANT \
|
|
-D_THREAD_SAFE \
|
|
-D_POSIX_PTHREAD_SEMANTICS \
|
|
-I../../../src/include/port/win32 \
|
|
thread_test.c \
|
|
-lwsock32 \
|
|
-lpthreadgc2
|
|
|
|
3) Run thread_test.exe. You should see output like:
|
|
|
|
dpage@PC30:/cvs/pgsql/src/tools/thread$ ./thread_test
|
|
Your GetLastError() is thread-safe.
|
|
Your system uses strerror() which is thread-safe.
|
|
getpwuid_r()/getpwuid() are not applicable to Win32 platforms.
|
|
Your system uses gethostbyname which is thread-safe.
|
|
|
|
Your platform is thread-safe.
|
|
|