Re: [GENERAL] fork() bad
От | M Simms |
---|---|
Тема | Re: [GENERAL] fork() bad |
Дата | |
Msg-id | 199903221408.OAA28600@argh.demon.co.uk обсуждение исходный текст |
Ответ на | fork() bad (Richi Plana <richip@mozcom.com>) |
Ответы |
Re: [GENERAL] fork() bad
|
Список | pgsql-general |
> > Hi, > > I'm probably doing something wrong here. > > My process establishes a connection with a PostgreSQL backen and then > fork()s (twice, actually). To make things even more complicated (though I > don't know if it affects things), my connection handle is a global > variable in a dynamically-loaded shared object. > > I tried PQreset()ing the connections after forking and then I'd try a > begin but I'd get the ff.: > > NOTICE: BeginTransactionBlock and not in default state > > What does that mean? > > > So, what's the deal with fork()ing and connections? > Well, Ive not looked at the code, but I should be right here. If you fork, you will have two processes pumping data down the same connection to the database, cos the fork() will simply duplicate the file descriptor reference, not make you a new connection. If two forked() processes try and send data or retrieve data at the same time, everything will break, as the database obviously will not know what the hell is going on and will get a mangled transmission
В списке pgsql-general по дате отправления: