Re: [HACKERS] insert performance for win32

From: "Magnus Hagander" <mha(at)sollentuna(dot)net>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
Cc: <pgsql-hackers(at)postgresql(dot)org>, <pgsql-performance(at)postgresql(dot)org>
Subject: Re: [HACKERS] insert performance for win32
Date: 2005-11-04 18:30:32
Message-ID: 6BCB9D8A16AC4241919521715F4D8BCE92E7F7@algol.sollentuna.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-performance

> >> AFAICS it is appropriate to move the sigsetjmp and
> >> setup_cancel_handler calls in front of the per-line loop inside
> >> MainLoop --- can anyone see a reason not to?
>
> > hm. mainloop is re-entrant, right? That means each \i
> would reset the
> > handler...what is downside to keeping global flag?
>
> Ah, right, and in fact I'd missed the comment at line 325
> pointing out that we're relying on the sigsetjmp to be
> re-executed every time through. That could be improved on,
> likely, but not right before a release.
>
> Does the flag need to be global? I'm thinking
>
> void
> setup_cancel_handler(void)
> {
> + static bool done = false;
> +
> + if (!done)
> SetConsoleCtrlHandler(consoleHandler, TRUE);
> + done = true;
> }
>

Seems like a simple enough solution, don't see why it shouldn't work. As
long as psql is single-threaded, which it is...
(Actually, that code seems to re-set done=true on every call which seems
unnecessary - but that might be optimised away, I guess)

//Magnus

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-11-04 18:37:32 Re: insert performance for win32
Previous Message Merlin Moncure 2005-11-04 18:26:52 Re: insert performance for win32

Browse pgsql-performance by date

  From Date Subject
Next Message Qingqing Zhou 2005-11-04 18:30:34 Re: insert performance for win32
Previous Message Bruce Momjian 2005-11-04 18:21:07 Re: [HACKERS] insert performance for win32