@@ -164,23 +164,20 @@ btmask_del(BackendTypeMask mask, BackendType t)
164
164
}
165
165
166
166
static inline BackendTypeMask
167
- btmask_all_except ( BackendType t )
167
+ btmask_all_except_n ( int nargs , BackendType * t )
168
168
{
169
169
BackendTypeMask mask = BTYPE_MASK_ALL ;
170
170
171
- mask = btmask_del (mask , t );
171
+ for (int i = 0 ; i < nargs ; i ++ )
172
+ mask = btmask_del (mask , t [i ]);
172
173
return mask ;
173
174
}
174
175
175
- static inline BackendTypeMask
176
- btmask_all_except2 (BackendType t1 , BackendType t2 )
177
- {
178
- BackendTypeMask mask = BTYPE_MASK_ALL ;
179
-
180
- mask = btmask_del (mask , t1 );
181
- mask = btmask_del (mask , t2 );
182
- return mask ;
183
- }
176
+ #define btmask_all_except (...) \
177
+ btmask_all_except_n( \
178
+ lengthof(((BackendType[]){__VA_ARGS__})), \
179
+ (BackendType[]){__VA_ARGS__} \
180
+ )
184
181
185
182
static inline bool
186
183
btmask_contains (BackendTypeMask mask , BackendType t )
@@ -2979,7 +2976,7 @@ PostmasterStateMachine(void)
2979
2976
* left by now anyway; what we're really waiting for is walsenders and
2980
2977
* archiver.
2981
2978
*/
2982
- if (CountChildren (btmask_all_except2 (B_LOGGER , B_DEAD_END_BACKEND )) == 0 )
2979
+ if (CountChildren (btmask_all_except (B_LOGGER , B_DEAD_END_BACKEND )) == 0 )
2983
2980
{
2984
2981
UpdatePMState (PM_WAIT_DEAD_END );
2985
2982
ConfigurePostmasterWaitSet (false);
0 commit comments