Assert that pgwin32_signal_initialize() has been called early enough.
Before the pgwin32_signal_initialize() call, the backend version of pg_usleep() has no effect. No in-tree code falls afoul of that today, but temporary commit 23078689a9921968ac0873b017be6e7f772f10bc did so. Discussion: https://postgr.es/m/20190402135442.GA1173872@rfd.leadboat.com
This commit is contained in:
parent
f433394e48
commit
ab9ed9be23
@ -52,6 +52,7 @@ static BOOL WINAPI pg_console_handler(DWORD dwCtrlType);
|
|||||||
void
|
void
|
||||||
pg_usleep(long microsec)
|
pg_usleep(long microsec)
|
||||||
{
|
{
|
||||||
|
Assert(pgwin32_signal_event != NULL);
|
||||||
if (WaitForSingleObject(pgwin32_signal_event,
|
if (WaitForSingleObject(pgwin32_signal_event,
|
||||||
(microsec < 500 ? 1 : (microsec + 500) / 1000))
|
(microsec < 500 ? 1 : (microsec + 500) / 1000))
|
||||||
== WAIT_OBJECT_0)
|
== WAIT_OBJECT_0)
|
||||||
@ -108,6 +109,7 @@ pgwin32_dispatch_queued_signals(void)
|
|||||||
{
|
{
|
||||||
int exec_mask;
|
int exec_mask;
|
||||||
|
|
||||||
|
Assert(pgwin32_signal_event != NULL);
|
||||||
EnterCriticalSection(&pg_signal_crit_sec);
|
EnterCriticalSection(&pg_signal_crit_sec);
|
||||||
while ((exec_mask = UNBLOCKED_SIGNAL_QUEUE()) != 0)
|
while ((exec_mask = UNBLOCKED_SIGNAL_QUEUE()) != 0)
|
||||||
{
|
{
|
||||||
@ -209,6 +211,7 @@ pgwin32_create_signal_listener(pid_t pid)
|
|||||||
void
|
void
|
||||||
pg_queue_signal(int signum)
|
pg_queue_signal(int signum)
|
||||||
{
|
{
|
||||||
|
Assert(pgwin32_signal_event != NULL);
|
||||||
if (signum >= PG_SIGNAL_COUNT || signum <= 0)
|
if (signum >= PG_SIGNAL_COUNT || signum <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -70,6 +70,9 @@ pgwin32_open(const char *fileName, int fileFlags,...)
|
|||||||
(O_RANDOM | O_SEQUENTIAL | O_TEMPORARY) |
|
(O_RANDOM | O_SEQUENTIAL | O_TEMPORARY) |
|
||||||
_O_SHORT_LIVED | O_DSYNC | O_DIRECT |
|
_O_SHORT_LIVED | O_DSYNC | O_DIRECT |
|
||||||
(O_CREAT | O_TRUNC | O_EXCL) | (O_TEXT | O_BINARY))) == fileFlags);
|
(O_CREAT | O_TRUNC | O_EXCL) | (O_TEXT | O_BINARY))) == fileFlags);
|
||||||
|
#ifndef FRONTEND
|
||||||
|
Assert(pgwin32_signal_event != NULL); /* small chance of pg_usleep() */
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef FRONTEND
|
#ifdef FRONTEND
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user