Skip site navigation (1) Skip section navigation (2)

Re: Function written in C, hangs on one machine and not another...

From: Martijn van Oosterhout <kleptog(at)svana(dot)org>
To: CG <cgg007(at)yahoo(dot)com>
Cc: postgresql listserv <pgsql-general(at)postgresql(dot)org>
Subject: Re: Function written in C, hangs on one machine and not another...
Date: 2005-10-28 13:56:46
Message-ID: 20051028135645.GC26190@svana.org (view raw or flat)
Thread:
Lists: pgsql-general
On Fri, Oct 28, 2005 at 06:38:29AM -0700, CG wrote:
> PostgreSQL 7.4 ...
> 
> Essentially, I've written a function in C for use with PostgreSQL. The debugger
> shows that the program is hanging on the part of the program that is writing
> data into it's own STDIN. 

Umm, what *are* you trying to do? Is this running in the backend?

Firstly, depending on the saize of param_1, the write will block
because it can't write all of it (usually PIPE_BUF). Perhaps recent
kernel versions have changed to make it so no data is accepted until a
reader appears even if the data is smaller than that.

Since apparently you want the read to happen in the same process as the
write, you've just deadlocked yourself. The write won't happen till
someone reads, and the read won't happen because you're stuck
writing...

Finally, this is insane, why would you want to change STDIN?
-- 
Martijn van Oosterhout   <kleptog(at)svana(dot)org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

In response to

Responses

pgsql-general by date

Next:From: Alex TurnerDate: 2005-10-28 13:59:32
Subject: Re: Why database is corrupted after re-booting
Previous:From: alessandra de gregorioDate: 2005-10-28 13:42:08
Subject: serial number in output

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group