@SuppressWarnings("unchecked")
    @Override
    protected void process_hiccup (Object pipe_) {
        //  Destroy old outpipe. Note that the read end of the pipe was already
        //  migrated to this thread.
        assert (outpipe != null);
        outpipe.flush ();
        while (outpipe.read () !=null) {
        }

        //  Plug in the new outpipe.
        assert (pipe_ != null);
        outpipe = (YPipe<Msg>) pipe_;
        out_active = true;

        //  If appropriate, notify the user about the hiccup.
        if (state == State.active)
            sink.hiccuped (this);
    }