mirror of https://github.com/citusdata/citus.git
30 lines
834 B
C
30 lines
834 B
C
/*
|
|
* memutils.h
|
|
* utility functions to help with postgres' memory management primitives
|
|
*/
|
|
|
|
#ifndef CITUS_MEMUTILS_H
|
|
#define CITUS_MEMUTILS_H
|
|
|
|
#include "utils/palloc.h"
|
|
|
|
|
|
/*
|
|
* EnsureReleaseResource is an abstraction on MemoryContextRegisterResetCallback that
|
|
* allocates the space for the MemoryContextCallback and registers it to the current
|
|
* MemoryContext, ensuring the call of callback with arg as its argument during either the
|
|
* Reset of Delete of a MemoryContext.
|
|
*/
|
|
static inline void
|
|
EnsureReleaseResource(MemoryContextCallbackFunction callback, void *arg)
|
|
{
|
|
MemoryContextCallback *cb = MemoryContextAllocZero(CurrentMemoryContext,
|
|
sizeof(MemoryContextCallback));
|
|
cb->func = callback;
|
|
cb->arg = arg;
|
|
MemoryContextRegisterResetCallback(CurrentMemoryContext, cb);
|
|
}
|
|
|
|
|
|
#endif /*CITUS_MEMUTILS_H */
|