| $PostgreSQL: pgsql/src/test/thread/README,v 1.2 2008/03/21 13:23:29 momjian Exp $ |
| |
| Threading |
| ========= |
| |
| 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. |
| |