Sharing database handles across forked child processes

From: dan(at)sidhe(dot)org
To: pgsql-general(at)postgresql(dot)org
Subject: Sharing database handles across forked child processes
Date: 2007-11-13 17:02:31
Message-ID: 52562.199.172.169.21.1194973351.squirrel@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

How does Postgres handle sharing database handles across child processes?
That is, if I have a process that opens a connection to the database and
then forks a few child processes, what happens?

Can the child processes safely use the handle?

If one child closes the handle, what happens to the handle in all the
other children? The parent?

This isn't a great thing to do, I realize, but I'm wedging database access
into an existing heavily fork-bound perl program, so my hands are somewhat
tied architecturally. (If it means I have to constantly test to see if the
handle's valid, and may have to deal with a handle randomly going away on
me, I can handle that -- I'm more worried about data corruption and
deadlock problems here, stuff I can't reasonably catch at the application
level)

-Dan

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Martijn van Oosterhout 2007-11-13 17:13:35 Re: Sharing database handles across forked child processes
Previous Message SHARMILA JOTHIRAJAH 2007-11-13 16:36:30 Postgres table size