mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
postmaster: Introduce variadic btmask_all_except()
Upcoming patches would otherwise need btmask_all_except3(). Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi> Discussion: https://postgr.es/m/w3z6w3g4aovivs735nk4pzjhmegntecesm3kktpebchegm5o53@aonnq2kn27xi
This commit is contained in:
parent
40d4031abd
commit
7e957cbb50
@ -164,23 +164,20 @@ btmask_del(BackendTypeMask mask, BackendType t)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline BackendTypeMask
|
static inline BackendTypeMask
|
||||||
btmask_all_except(BackendType t)
|
btmask_all_except_n(int nargs, BackendType *t)
|
||||||
{
|
{
|
||||||
BackendTypeMask mask = BTYPE_MASK_ALL;
|
BackendTypeMask mask = BTYPE_MASK_ALL;
|
||||||
|
|
||||||
mask = btmask_del(mask, t);
|
for (int i = 0; i < nargs; i++)
|
||||||
|
mask = btmask_del(mask, t[i]);
|
||||||
return mask;
|
return mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline BackendTypeMask
|
#define btmask_all_except(...) \
|
||||||
btmask_all_except2(BackendType t1, BackendType t2)
|
btmask_all_except_n( \
|
||||||
{
|
lengthof(((BackendType[]){__VA_ARGS__})), \
|
||||||
BackendTypeMask mask = BTYPE_MASK_ALL;
|
(BackendType[]){__VA_ARGS__} \
|
||||||
|
)
|
||||||
mask = btmask_del(mask, t1);
|
|
||||||
mask = btmask_del(mask, t2);
|
|
||||||
return mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
btmask_contains(BackendTypeMask mask, BackendType t)
|
btmask_contains(BackendTypeMask mask, BackendType t)
|
||||||
@ -2979,7 +2976,7 @@ PostmasterStateMachine(void)
|
|||||||
* left by now anyway; what we're really waiting for is walsenders and
|
* left by now anyway; what we're really waiting for is walsenders and
|
||||||
* archiver.
|
* archiver.
|
||||||
*/
|
*/
|
||||||
if (CountChildren(btmask_all_except2(B_LOGGER, B_DEAD_END_BACKEND)) == 0)
|
if (CountChildren(btmask_all_except(B_LOGGER, B_DEAD_END_BACKEND)) == 0)
|
||||||
{
|
{
|
||||||
UpdatePMState(PM_WAIT_DEAD_END);
|
UpdatePMState(PM_WAIT_DEAD_END);
|
||||||
ConfigurePostmasterWaitSet(false);
|
ConfigurePostmasterWaitSet(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user