Re: [HACKERS] insert performance for win32 - Mailing list pgsql-performance

From Magnus Hagander
Subject Re: [HACKERS] insert performance for win32
Date
Msg-id 6BCB9D8A16AC4241919521715F4D8BCE92E7F7@algol.sollentuna.se
Whole thread Raw
List 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


pgsql-performance by date:

Previous
From: "Qingqing Zhou"
Date:
Subject: Re: insert performance for win32
Next
From: "Qingqing Zhou"
Date:
Subject: Re: insert performance for win32