Re: 8.2.3: Server crashes on Windows using Eclipse/Junit - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: 8.2.3: Server crashes on Windows using Eclipse/Junit
Date
Msg-id 20071026120702.GE1398@svr2.hagander.net
Whole thread Raw
In response to Re: [GENERAL] 8.2.3: Server crashes on Windows using Eclipse/Junit  ("Trevor Talbot" <quension@gmail.com>)
Responses Re: 8.2.3: Server crashes on Windows using Eclipse/Junit
Re: 8.2.3: Server crashes on Windows using Eclipse/Junit
List pgsql-hackers
On Mon, Oct 22, 2007 at 01:19:24PM -0700, Trevor Talbot wrote:
> On 10/22/07, Magnus Hagander <magnus@hagander.net> wrote:
> > Trevor Talbot wrote:
>
> > > I'd probably take the approach of combining win32_waitpid() and
> > > threads.  You'd end up with 1 thread per 64 backends; when something
> > > interesting happens the thread could push the info onto a queue, which
> > > the new win32_waitpid() would check.  Use APCs to add new backends to
> > > threads with free slots.
> >
> > I was planning to make it even easier and let Windows do the job for us,
> > just using RegisterWaitForSingleObject(). Does the same - one thread per
> > 64 backends, but we don't have to deal with the queueing ourselves.
>
> Oh, good call -- I keep forgetting the native thread pool exists.

Taking this one to -hackers once and for all now...

Can you try the attached patch? See how many backends you can get up to.

This patch changes from using a single thread for each backend started to
using the builtin threadpool functionality. It also replaces the pid/handle
arrays with an i/o completion port. The net result is also, imho, much more
readable code :-)

Beware - there's still plenty of debugging code in there :-)

//Magnus

Attachment

pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: [PATCHES] Including Snapshot Info with Indexes
Next
From: "Trevor Talbot"
Date:
Subject: Re: 8.2.3: Server crashes on Windows using Eclipse/Junit