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 по дате отправления: