Re: [HACKERS] insert performance for win32

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux