diff options
Diffstat (limited to 'src/backend/commands/async.c')
-rw-r--r-- | src/backend/commands/async.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index 5e38ec154b6..745f4558537 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.145 2009/01/01 17:23:37 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.146 2009/02/13 17:12:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -277,6 +277,10 @@ Async_Unlisten(const char *relname) if (Trace_notify) elog(DEBUG1, "Async_Unlisten(%s,%d)", relname, MyProcPid); + /* If we couldn't possibly be listening, no need to queue anything */ + if (pendingActions == NIL && !unlistenExitRegistered) + return; + queue_listen(LISTEN_UNLISTEN, relname); } @@ -291,6 +295,10 @@ Async_UnlistenAll(void) if (Trace_notify) elog(DEBUG1, "Async_UnlistenAll(%d)", MyProcPid); + /* If we couldn't possibly be listening, no need to queue anything */ + if (pendingActions == NIL && !unlistenExitRegistered) + return; + queue_listen(LISTEN_UNLISTEN_ALL, ""); } |