    # File lib/rbot/ircsocket.rb, line 175
        def push(mess, chan=nil, cring=0)
          ring = cring
          self.synchronize do
            if ring == 0
              warning "message #{mess} at ring 0 has channel #{chan}: channel will be ignored" if !chan.nil?
              @rings[0] << mess
            else
              error "message #{mess} at ring #{ring} must have a channel" if chan.nil?
              @rings[ring].push mess, chan
            end
            @non_empty.signal
          end
        end