aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2012-10-18 19:04:20 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2012-10-18 19:04:20 -0400
commitdc5aeca168629183e64087b1147d3c2645e49ddc (patch)
tree0cb5c9d8fa34fe52b0dee3056e902a94d58a957b /src/backend
parent8f8d74647880ef53fc674498827b8b8e6c80d125 (diff)
downloadpostgresql-dc5aeca168629183e64087b1147d3c2645e49ddc.tar.gz
postgresql-dc5aeca168629183e64087b1147d3c2645e49ddc.zip
Remove unnecessary "head" arguments from some dlist/slist functions.
dlist_delete, dlist_insert_after, dlist_insert_before, slist_insert_after do not need access to the list header, and indeed insisting on that negates one of the main advantages of a doubly-linked list. In consequence, revert addition of "cache_bucket" field to CatCTup.
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/postmaster/autovacuum.c17
-rw-r--r--src/backend/postmaster/postmaster.c4
-rw-r--r--src/backend/utils/cache/catcache.c8
3 files changed, 15 insertions, 14 deletions
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index afd15aac973..6977bcf75e4 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -580,7 +580,6 @@ AutoVacLauncherMain(int argc, char *argv[])
struct timeval nap;
TimestampTz current_time = 0;
bool can_launch;
- avl_dbase *avdb;
int rc;
/*
@@ -725,7 +724,8 @@ AutoVacLauncherMain(int argc, char *argv[])
worker->wi_tableoid = InvalidOid;
worker->wi_proc = NULL;
worker->wi_launchtime = 0;
- dlist_push_head(&AutoVacuumShmem->av_freeWorkers, &worker->wi_links);
+ dlist_push_head(&AutoVacuumShmem->av_freeWorkers,
+ &worker->wi_links);
AutoVacuumShmem->av_startingWorker = NULL;
elog(WARNING, "worker took too long to start; canceled");
}
@@ -760,6 +760,8 @@ AutoVacLauncherMain(int argc, char *argv[])
* distant adl_next_worker first, we obtain our database from the
* tail of the list.
*/
+ avl_dbase *avdb;
+
avdb = dlist_tail_element(avl_dbase, adl_node, &DatabaseList);
/*
@@ -790,8 +792,6 @@ AutoVacLauncherMain(int argc, char *argv[])
static void
launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval * nap)
{
- avl_dbase *avdb;
-
/*
* We sleep until the next scheduled vacuum. We trust that when the
* database list was built, care was taken so that no entries have times
@@ -807,6 +807,7 @@ launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval * nap)
{
TimestampTz current_time = GetCurrentTimestamp();
TimestampTz next_wakeup;
+ avl_dbase *avdb;
long secs;
int usecs;
@@ -1677,7 +1678,7 @@ FreeWorkerInfo(int code, Datum arg)
*/
AutovacuumLauncherPid = AutoVacuumShmem->av_launcherpid;
- dlist_delete(&AutoVacuumShmem->av_runningWorkers, &MyWorkerInfo->wi_links);
+ dlist_delete(&MyWorkerInfo->wi_links);
MyWorkerInfo->wi_dboid = InvalidOid;
MyWorkerInfo->wi_tableoid = InvalidOid;
MyWorkerInfo->wi_proc = NULL;
@@ -1685,7 +1686,8 @@ FreeWorkerInfo(int code, Datum arg)
MyWorkerInfo->wi_cost_delay = 0;
MyWorkerInfo->wi_cost_limit = 0;
MyWorkerInfo->wi_cost_limit_base = 0;
- dlist_push_head(&AutoVacuumShmem->av_freeWorkers, &MyWorkerInfo->wi_links);
+ dlist_push_head(&AutoVacuumShmem->av_freeWorkers,
+ &MyWorkerInfo->wi_links);
/* not mine anymore */
MyWorkerInfo = NULL;
@@ -2863,7 +2865,8 @@ AutoVacuumShmemInit(void)
/* initialize the WorkerInfo free list */
for (i = 0; i < autovacuum_max_workers; i++)
- dlist_push_head(&AutoVacuumShmem->av_freeWorkers, &worker[i].wi_links);
+ dlist_push_head(&AutoVacuumShmem->av_freeWorkers,
+ &worker[i].wi_links);
}
else
Assert(found);
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index c8a80f038c4..b223feefbab 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -2696,7 +2696,7 @@ CleanupBackend(int pid,
ShmemBackendArrayRemove(bp);
#endif
}
- dlist_delete(&BackendList, iter.cur);
+ dlist_delete(iter.cur);
free(bp);
break;
}
@@ -2744,7 +2744,7 @@ HandleChildCrash(int pid, int exitstatus, const char *procname)
ShmemBackendArrayRemove(bp);
#endif
}
- dlist_delete(&BackendList, iter.cur);
+ dlist_delete(iter.cur);
free(bp);
/* Keep looping so we can signal remaining backends */
}
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 05ceff51cdf..a293f570e1b 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -370,7 +370,7 @@ CatCacheRemoveCTup(CatCache *cache, CatCTup *ct)
return; /* nothing left to do */
}
- dlist_delete(ct->cache_bucket, &ct->cache_elem);
+ dlist_delete(&ct->cache_elem);
/* free associated tuple data */
if (ct->tuple.t_data != NULL)
@@ -413,7 +413,7 @@ CatCacheRemoveCList(CatCache *cache, CatCList *cl)
}
/* delink from linked list */
- dlist_delete(&cache->cc_lists, &cl->cache_elem);
+ dlist_delete(&cl->cache_elem);
/* free associated tuple data */
if (cl->tuple.t_data != NULL)
@@ -1664,15 +1664,13 @@ CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp,
*/
ct->ct_magic = CT_MAGIC;
ct->my_cache = cache;
- ct->cache_bucket = &cache->cc_bucket[hashIndex];
-
ct->c_list = NULL;
ct->refcount = 0; /* for the moment */
ct->dead = false;
ct->negative = negative;
ct->hash_value = hashValue;
- dlist_push_head(ct->cache_bucket, &ct->cache_elem);
+ dlist_push_head(&cache->cc_bucket[hashIndex], &ct->cache_elem);
cache->cc_ntup++;
CacheHdr->ch_ntup++;