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

From Tom Lane
Subject Re: [PERFORM] insert performance for win32
Date
Msg-id 16056.1131128076@sss.pgh.pa.us
Whole thread Raw
In response to Re: [PERFORM] insert performance for win32  ("Merlin Moncure" <merlin.moncure@rcsonline.com>)
List pgsql-hackers
"Merlin Moncure" <merlin.moncure@rcsonline.com> writes:
>> 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;
  }


            regards, tom lane

pgsql-hackers by date:

Previous
From: "Merlin Moncure"
Date:
Subject: Re: [PERFORM] insert performance for win32
Next
From: David Fetter
Date:
Subject: Re: [PERFORM] insert performance for win32