1010 *
1111 *
1212 * IDENTIFICATION
13- * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.44 2007/05/02 18:27:57 alvherre Exp $
13+ * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.45 2007/05/04 02:06:13 tgl Exp $
1414 *
1515 *-------------------------------------------------------------------------
1616 */
@@ -1288,7 +1288,7 @@ NON_EXEC_STATIC void
12881288AutoVacWorkerMain (int argc ,char * argv [])
12891289{
12901290sigjmp_buf local_sigjmp_buf ;
1291- Oid dbid = InvalidOid ;
1291+ Oid dbid ;
12921292
12931293/* we are a postmaster subprocess now */
12941294IsUnderPostmaster = true;
@@ -1410,8 +1410,8 @@ AutoVacWorkerMain(int argc, char *argv[])
14101410SHMQueueInsertBefore (& AutoVacuumShmem -> av_runningWorkers ,
14111411& MyWorkerInfo -> wi_links );
14121412/*
1413- * remove from the "starting" pointer, so that the launcher can start a new
1414- * worker if required
1413+ * remove from the "starting" pointer, so that the launcher can start
1414+ *a new worker if required
14151415 */
14161416AutoVacuumShmem -> av_startingWorker = INVALID_OFFSET ;
14171417LWLockRelease (AutovacuumLock );
@@ -1423,8 +1423,11 @@ AutoVacWorkerMain(int argc, char *argv[])
14231423kill (AutoVacuumShmem -> av_launcherpid ,SIGUSR1 );
14241424}
14251425else
1426+ {
14261427/* no worker entry for me, go away */
1428+ dbid = InvalidOid ;
14271429LWLockRelease (AutovacuumLock );
1430+ }
14281431
14291432if (OidIsValid (dbid ))
14301433{
@@ -1474,7 +1477,8 @@ AutoVacWorkerMain(int argc, char *argv[])
14741477}
14751478
14761479/*
1477- * Return a WorkerInfo to the free list */
1480+ * Return a WorkerInfo to the free list
1481+ */
14781482static void
14791483FreeWorkerInfo (int code ,Datum arg )
14801484{