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
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 |
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 |