private void distribute(Msg msg_, int flags_) {
        //  If there are no matching pipes available, simply drop the message.
        if (matching == 0) {
            return;
        }
        
        for (int i = 0; i < matching; ++i)
            if(!write (pipes.get(i), msg_))
                --i; //  Retry last write because index will have been swapped
        return;
        
    }