提交 2cd519d3 编写于 作者: H Heikki Linnakangas

Remove unused atomic functions.

None of the source files that #included gp_atomic.h actually needed the
declarations from gp_atomic.h. They actually needed the definitions from
port/atomics.h, which gp-atomic.h in turn #included.
上级 ed9be304
......@@ -29,7 +29,6 @@
#include "cdb/cdbgang.h"
#include "cdb/cdbvars.h"
#include "miscadmin.h"
#include "utils/gp_atomic.h"
#define DISPATCH_WAIT_TIMEOUT_MSEC 2000
......
......@@ -30,7 +30,7 @@
#include "cdb/cdbgang.h"
#include "cdb/cdbvars.h"
#include "miscadmin.h"
#include "utils/gp_atomic.h"
#include "port/atomics.h"
#ifndef _WIN32
#define mythread() ((unsigned long) pthread_self())
......
......@@ -25,7 +25,6 @@
#include "cdb/cdbgang.h"
#include "cdb/cdbvars.h"
#include "miscadmin.h"
#include "utils/gp_atomic.h"
static int getPollTimeout(const struct timeval* startTS);
static Gang *createGang_async(GangType type, int gang_id, int size, int content);
......
......@@ -30,11 +30,10 @@
#include "miscadmin.h"
#include "libpq/libpq-be.h"
#include "libpq/ip.h"
#include "utils/gp_atomic.h"
#include "utils/builtins.h"
#include "utils/debugbreak.h"
#include "utils/faultinjector.h"
#include "utils/pg_crc.h"
#include "port/atomics.h"
#include "port/pg_crc32c.h"
#include "cdb/cdbselect.h"
......
......@@ -60,7 +60,7 @@
#include "funcapi.h"
#include "catalog/pg_type.h"
#include "access/tuptoaster.h"
#include "utils/gp_atomic.h"
#include "port/atomics.h"
extern bool gp_debug_resqueue_priority;
......
......@@ -60,7 +60,7 @@
#include "cdb/cdblocaldistribxact.h"
#include "cdb/cdbgang.h"
#include "cdb/cdbvars.h" /*Gp_is_writer*/
#include "utils/gp_atomic.h"
#include "port/atomics.h"
#include "utils/session_state.h"
/* GUC variables */
......
......@@ -10,11 +10,12 @@
*/
#include "postgres.h"
#include "utils/sharedcache.h"
#include "cdb/cdbutil.h"
#include "cdb/cdbvars.h"
#include "port/atomics.h"
#include "utils/memutils.h"
#include "utils/gp_atomic.h"
#include "cdb/cdbutil.h"
#include "utils/sharedcache.h"
/* Suffix used to generate shared memory hashtable name from cache name */
#define CACHE_HASHTABLE_SUFFIX "_HASHTABLE"
......
......@@ -11,7 +11,7 @@
#include "postgres.h"
#include "utils/syncrefhashtable.h"
#include "utils/gp_atomic.h"
#include "port/atomics.h"
#include "storage/shmem.h"
/*
......
......@@ -18,7 +18,7 @@ SUBDIRS := fstream
override CPPFLAGS := -I$(srcdir) $(CPPFLAGS)
OBJS = guc.o help_config.o pg_rusage.o ps_status.o superuser.o tzparser.o uriparser.o \
faultinjector.o netcheck.o simex.o simexsys.o syncbitvector.o testutils.o gp_atomic.o \
faultinjector.o netcheck.o simex.o simexsys.o syncbitvector.o testutils.o \
bitstream.o bitmap_compression.o size.o guc_gp.o zlib_wrapper.o
# This location might depend on the installation directories. Therefore
......
/*
* gp_atomic.c
* routines for atomic operations.
*
* Copyright (c) 2011 - present, EMC DCD (Greenplum)
*/
#include "postgres.h"
#include "utils/gp_atomic.h"
/*
* atomic_incmod_value
*
* Atomically adds 1 to a value, modulo 'mod'
*
* Algorithm:
* *loc = (*loc + 1) % mod
*
*/
int32
gp_atomic_incmod_32(volatile int32 *loc, int32 mod)
{
Assert(NULL != loc);
int32 oldval = pg_atomic_add_fetch_u32((pg_atomic_uint32 *)loc, 1);
if (oldval >= mod)
{
/* we have overflow */
if (oldval == mod)
{
/* exactly at overflow, reduce by one cycle */
pg_atomic_sub_fetch_u32((pg_atomic_uint32 *)loc, mod);
}
/* must reduce result */
oldval %= mod;
}
return(oldval);
}
/*
* gp_atomic_dec_positive_32
*
* Atomically decrements a value by a positive amount dec. If result was negative,
* sets value to 0
*
* Returns new decremented value, which is never negative
*/
uint32
gp_atomic_dec_positive_32(volatile uint32 *loc, uint32 dec)
{
uint32 newVal = 0;
while (true)
{
uint32 oldVal = (uint32) *loc;
newVal = 0;
if (oldVal > dec)
{
newVal = oldVal - dec;
}
bool casResult = pg_atomic_compare_exchange_u32((pg_atomic_uint32 *)loc, &oldVal, newVal);
if (true == casResult)
{
break;
}
}
return newVal;
}
/*
* gp_atomic_inc_ceiling_32
*
* Atomically increments a value by a positive amount inc. If result is over
* a ceiling ceil, set value to ceil.
*
* Returns new incremented value, which is <= ceil.
*/
uint32
gp_atomic_inc_ceiling_32(volatile uint32 *loc, uint32 inc, uint32 ceil)
{
uint32 newVal = 0;
while (true)
{
uint32 oldVal = (uint32) *loc;
newVal = oldVal + inc;
if (newVal > ceil)
{
newVal = ceil;
}
bool casResult = pg_atomic_compare_exchange_u32((pg_atomic_uint32 *)loc, &oldVal, newVal);
if (true == casResult)
{
break;
}
}
return newVal;
}
......@@ -17,9 +17,10 @@
*/
#include "postgres.h"
#include "port/atomics.h"
#include "storage/shmem.h"
#include "utils/syncbitvector.h"
#include "utils/gp_atomic.h"
/*
* bit vector access descriptor.
......
......@@ -27,6 +27,7 @@
#endif
#include "miscadmin.h"
#include "port/atomics.h"
#include "storage/pg_sema.h"
#include "storage/ipc.h"
#include "utils/palloc.h"
......@@ -37,7 +38,6 @@
#include "utils/simex.h"
#include "utils/vmem_tracker.h"
#include "utils/session_state.h"
#include "utils/gp_atomic.h"
#include "utils/gp_alloc.h"
#define SHMEM_OOM_TIME "last vmem oom time"
......
......@@ -12,9 +12,10 @@
*/
#include "postgres.h"
#include "utils/gp_atomic.h"
#include "cdb/cdbvars.h"
#include "miscadmin.h"
#include "port/atomics.h"
#include "utils/vmem_tracker.h"
#include "utils/session_state.h"
......
......@@ -14,12 +14,13 @@
*/
#include "postgres.h"
#include "utils/gp_atomic.h"
#include "cdb/cdbvars.h"
#include "utils/vmem_tracker.h"
#include "utils/session_state.h"
#include "utils/faultinjector.h"
#include "miscadmin.h"
#include "port/atomics.h"
#include "utils/faultinjector.h"
#include "utils/session_state.h"
#include "utils/vmem_tracker.h"
/* External dependencies within the runaway cleanup framework */
extern bool vmemTrackerInited;
......
......@@ -13,9 +13,10 @@
*/
#include "postgres.h"
#include "utils/gp_atomic.h"
#include "cdb/cdbvars.h"
#include "miscadmin.h"
#include "port/atomics.h"
#include "utils/faultinjection.h"
#include "utils/vmem_tracker.h"
#include "utils/session_state.h"
......
......@@ -13,10 +13,10 @@
#include "postgres.h"
#include "utils/gp_atomic.h"
#include "utils/memutils.h"
#include "cdb/cdbvars.h"
#include "miscadmin.h"
#include "port/atomics.h"
#include "utils/session_state.h"
#include "utils/vmem_tracker.h"
......
......@@ -16,10 +16,10 @@
#include "cdb/cdbvars.h"
#include "executor/execWorkfile.h"
#include "miscadmin.h"
#include "port/atomics.h"
#include "postmaster/primary_mirror_mode.h"
#include "storage/bfz.h"
#include "storage/buffile.h"
#include "utils/gp_atomic.h"
#include "utils/builtins.h"
#include "utils/logtape.h"
#include "utils/memutils.h"
......
......@@ -10,8 +10,8 @@
#include "postgres.h"
#include "port/atomics.h"
#include "storage/shmem.h"
#include "utils/gp_atomic.h"
#include "utils/workfile_mgr.h"
#include "utils/memutils.h"
#include "miscadmin.h"
......
......@@ -10,8 +10,8 @@
#include "postgres.h"
#include "port/atomics.h"
#include "storage/shmem.h"
#include "utils/gp_atomic.h"
#include "cdb/cdbvars.h"
#include "utils/workfile_mgr.h"
#include "miscadmin.h"
......
/*
* gp_atomic.h
* Header file for atomic operations.
*
* Copyright (c) 2011 - present, EMC DCD (Greenplum).
*/
#ifndef GP_ATOMIC_H
#define GP_ATOMIC_H
#include "port/atomics.h"
extern int32 gp_atomic_incmod_32(volatile int32 *loc, int32 mod);
extern uint32 gp_atomic_dec_positive_32(volatile uint32 *loc, uint32 dec);
extern uint32 gp_atomic_inc_ceiling_32(volatile uint32 *loc, uint32 inc, uint32 ceil);
#endif /* GP_ATOMIC_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册