static inline void pgaio_io_update_state(PgAioHandle *ioh, PgAioHandleState new_state);
static void pgaio_io_reclaim(PgAioHandle *ioh);
-static void pgaio_io_resowner_register(PgAioHandle *ioh);
+static void pgaio_io_resowner_register(PgAioHandle *ioh, struct ResourceOwnerData *resowner);
static void pgaio_io_wait_for_free(void);
static PgAioHandle *pgaio_io_from_wref(PgAioWaitRef *iow, uint64 *ref_generation);
static const char *pgaio_io_state_get_name(PgAioHandleState s);
pgaio_my_backend->handed_out_io = ioh;
if (resowner)
- pgaio_io_resowner_register(ioh);
+ pgaio_io_resowner_register(ioh, resowner);
if (ret)
{
}
static void
-pgaio_io_resowner_register(PgAioHandle *ioh)
+pgaio_io_resowner_register(PgAioHandle *ioh, struct ResourceOwnerData *resowner)
{
Assert(!ioh->resowner);
- Assert(CurrentResourceOwner);
+ Assert(resowner);
- ResourceOwnerRememberAioHandle(CurrentResourceOwner, &ioh->resowner_node);
- ioh->resowner = CurrentResourceOwner;
+ ResourceOwnerRememberAioHandle(resowner, &ioh->resowner_node);
+ ioh->resowner = resowner;
}
/*
ct->refcount--;
if (resowner)
- ResourceOwnerForgetCatCacheRef(CurrentResourceOwner, &ct->tuple);
+ ResourceOwnerForgetCatCacheRef(resowner, &ct->tuple);
if (
#ifndef CATCACHE_FORCE_RELEASE
Assert(list->refcount > 0);
list->refcount--;
if (resowner)
- ResourceOwnerForgetCatCacheListRef(CurrentResourceOwner, list);
+ ResourceOwnerForgetCatCacheListRef(resowner, list);
if (
#ifndef CATCACHE_FORCE_RELEASE