> Not sure why it is done in the reverese order currently, it probably has > a reason I don't understand yet...
On the surface the swap looks OK to me. It seems like all the listeners that are supposed to be maintained through the restart are long since moved out of old_listeners. But it's not clear why if the AF_UNIX listen is unchanged why it would ever be an old_listener that remains at either place. Maybe match_address lets it get closed every time during a restart or something like that? For the higher level issue of apr_socket_close, maybe the behavior could change for the "child cleanup"?