> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:pgsql-hackers-
> [EMAIL PROTECTED] On Behalf Of Magnus Hagander
> Sent: Friday, November 04, 2005 10:31 AM
> To: Tom Lane; Merlin Moncure
> Cc: pgsql-hackers@postgresql.org; pgsql-performance@postgresql.org
> Subject: Re: [HACKERS] [PERFORM] insert performance for win32
> 
> > >> 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


How about:

   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
> 
> 
> ---------------------------(end of
broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faq

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to