def coalesce( *msg )
      @c_mutex.synchronize do
        if @c_queue.empty?
          @c_queue << msg
          @c_thread.run

        else
          qmsg = @c_queue.last
          if qmsg.first != msg.first or qmsg.last != msg.last
            @c_queue << msg
          else
            qmsg[1] << "\n" << msg[1]
          end
        end
      end
    end
def coalesce( *msg )
      @c_mutex.synchronize do
        if @c_queue.empty?
          @c_queue << msg
          @c_thread.run

        else
          qmsg = @c_queue.last
          if qmsg.first != msg.first or qmsg.last != msg.last
            @c_queue << msg
          else
            qmsg[1] << "\n" << msg[1]
          end
        end
      end
    end
call-seq:
    coalesce( title, message, priority )

 Attempt to coalesce the given _message_ with any that might be pending
 in the queue to send to the growl notifier. Messages are coalesced
 with any in the queue that have the same _title_ and _priority_.

 There can be only one message in the queue, so if the _title_ and/or
 _priority_ don't match, the message in the queue is sent immediately
 to the growl notifier, and the current _message_ is queued.