mirror of
https://github.com/postgres/postgres.git
synced 2025-12-12 02:37:31 +03:00
Add ParallelSlotSetIdle().
This commit refactors the code for marking a ParallelSlot as idle to a new static inline function. This can be used to mark a slot that was obtained via ParallelSlotGetIdle() but that we don't intend to actually use for a query as idle again. This is preparatory work for a follow-up commit that will add a --dry-run option to vacuumdb. Reviewed-by: Corey Huinker <corey.huinker@gmail.com> Reviewed-by: Kirill Reshke <reshkekirill@gmail.com> Reviewed-by: Chao Li <li.evan.chao@gmail.com Discussion: https://postgr.es/m/CADkLM%3DckHkX7Of5SrK7g0LokPUwJ%3Dkk8JU1GXGF5pZ1eBVr0%3DQ%40mail.gmail.com
This commit is contained in:
@@ -269,8 +269,7 @@ wait_on_slots(ParallelSlotArray *sa)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* This connection has become idle */
|
/* This connection has become idle */
|
||||||
sa->slots[i].inUse = false;
|
ParallelSlotSetIdle(&sa->slots[i]);
|
||||||
ParallelSlotClearHandler(&sa->slots[i]);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -509,8 +508,7 @@ ParallelSlotsWaitCompletion(ParallelSlotArray *sa)
|
|||||||
if (!consumeQueryResult(&sa->slots[i]))
|
if (!consumeQueryResult(&sa->slots[i]))
|
||||||
return false;
|
return false;
|
||||||
/* Mark connection as idle */
|
/* Mark connection as idle */
|
||||||
sa->slots[i].inUse = false;
|
ParallelSlotSetIdle(&sa->slots[i]);
|
||||||
ParallelSlotClearHandler(&sa->slots[i]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -58,6 +58,13 @@ ParallelSlotClearHandler(ParallelSlot *slot)
|
|||||||
slot->handler_context = NULL;
|
slot->handler_context = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
ParallelSlotSetIdle(ParallelSlot *slot)
|
||||||
|
{
|
||||||
|
slot->inUse = false;
|
||||||
|
ParallelSlotClearHandler(slot);
|
||||||
|
}
|
||||||
|
|
||||||
extern ParallelSlot *ParallelSlotsGetIdle(ParallelSlotArray *sa,
|
extern ParallelSlot *ParallelSlotsGetIdle(ParallelSlotArray *sa,
|
||||||
const char *dbname);
|
const char *dbname);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user