| From: | Manfred Spraul <manfred(at)colorfullife(dot)com> |
|---|---|
| To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | libpq thread safety |
| Date: | 2004-01-11 14:10:23 |
| Message-ID: | 4001594F.6060304@colorfullife.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
libpq needs additional changes for complete thread safety:
- openssl needs different initialization.
- kerberos is not thread safe.
- functions such as gethostbyname are not thread safe, and could be used
by kerberos. Right now protected with a libpq specific mutex.
- dito for getpwuid and stderror.
openssl is trivial: just proper flags are needed for the init function.
But what about kerberos: I'm a bit reluctant to add a forth mutex: what
if kerberos calls gethostbyname or getpwuid internally?
Usually I would use one single_thread mutex and use that mutex for all
operations - races are just too difficult to debug. Any better ideas?
Otherwise I'd start searching for the non-threadsafe functions and add
pthread_lock around them.
Actually I'm not even sure if it should be a libpq specific mutex: what
if the calling app needs to access openssl or kerberos as well? Perhaps
libpq should use a system similar to openssl:
http://www.openssl.org/docs/crypto/threads.html
--
Manfred
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Manfred Spraul | 2004-01-11 15:34:34 | PQinSend question |
| Previous Message | Dino Nardini | 2004-01-11 14:10:07 | Re: [GENERAL] Is my MySQL Gaining ? |