Re: libpq is not thread safe

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: libpq is not thread safe
Дата
Msg-id 200904152343.n3FNhuB05819@momjian.us
обсуждение исходный текст
Ответ на libpq is not thread safe  (Zdenek Kotala <Zdenek.Kotala@Sun.COM>)
Список pgsql-hackers
Zdenek Kotala wrote:
> When postgreSQL is compiled with --thread-safe that libpq should be
> thread safe. But it is not true when somebody call fork(). The problem
> is that fork() forks only active threads and some mutex can stay locked
> by another thread. We use ssl_config mutex which is global.
> 
> We need implement atfork handlers to fix this. See 
> http://www.opengroup.org/onlinepubs/009695399/functions/pthread_atfork.html
> 
> We should add pthread_atfork into _ini libpq section.
> 
> Another problem with fork is that new process inherit connections and so
> on. Which is not also good, but it is happened also on single threaded
> application and developer can fix it in own code. Maybe some notice in
> documentation should help what application should do after fork.

Yep, added to TODO list:
Make libpq thread-safe in programs that use fork()    This requires the use of pthread_atfork() to release global locks
  held in libpq        * http://archives.postgresql.org/pgsql-hackers/2009-04/msg00747.php 
 
--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [GENERAL] Performance of full outer join in 8.3
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: GIN versus zero-key queries