diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-07-16 20:17:04 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-07-16 20:17:04 +0000 |
commit | 93120f3501cc9603bfbaf87dea815feb77b782b3 (patch) | |
tree | cb6e2e8c4cfa6ae7ba5ff0b920f79408cd527f3c /src/backend/port/win32/signal.c | |
parent | e96373aae58f0e12a4c1845d5c10d94729a01b52 (diff) | |
download | postgresql-93120f3501cc9603bfbaf87dea815feb77b782b3.tar.gz postgresql-93120f3501cc9603bfbaf87dea815feb77b782b3.zip |
In a Windows backend, don't build src/port/pgsleep.c's version of
pg_usleep at all. Instead call the replacement function in
port/win32/signal.c by that name. Avoids tricky macro-redefinition
logic and suppresses a compiler warning; furthermore it ensures that
no one can accidentally use the non-signal-aware version of pg_usleep
in a Windows backend.
Diffstat (limited to 'src/backend/port/win32/signal.c')
-rw-r--r-- | src/backend/port/win32/signal.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/backend/port/win32/signal.c b/src/backend/port/win32/signal.c index 06b45c8eb92..d12e29990fd 100644 --- a/src/backend/port/win32/signal.c +++ b/src/backend/port/win32/signal.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/port/win32/signal.c,v 1.16 2006/03/05 15:58:35 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/port/win32/signal.c,v 1.17 2006/07/16 20:17:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -41,11 +41,19 @@ static pqsigfunc pg_signal_defaults[PG_SIGNAL_COUNT]; static DWORD WINAPI pg_signal_thread(LPVOID param); static BOOL WINAPI pg_console_handler(DWORD dwCtrlType); -/* Sleep function that can be interrupted by signals */ + +/* + * pg_usleep --- delay the specified number of microseconds, but + * stop waiting if a signal arrives. + * + * This replaces the non-signal-aware version provided by src/port/pgsleep.c. + */ void -pgwin32_backend_usleep(long microsec) +pg_usleep(long microsec) { - if (WaitForSingleObject(pgwin32_signal_event, (microsec < 500 ? 1 : (microsec + 500) / 1000)) == WAIT_OBJECT_0) + if (WaitForSingleObject(pgwin32_signal_event, + (microsec < 500 ? 1 : (microsec + 500) / 1000)) + == WAIT_OBJECT_0) { pgwin32_dispatch_queued_signals(); errno = EINTR; |