def remove(filter, type=nil)
      if(type)
        const = Splib.find_const(type)
        type = const unless const.nil?
      end
      @lock.synchronize do
        (type ? [@filters[type]] : @filters.values).each do |set|
          [:filters, :procs].each do |t|
            if(set[t])
              set[t].delete_if{|v| v == filter}
              set.delete(t) if set[t].empty?
            end
          end
        end
        @filters.delete_if{|k,v|v.empty?}
      end
      nil
    end
def remove(filter, type=nil)
      if(type)
        const = Splib.find_const(type)
        type = const unless const.nil?
      end
      @lock.synchronize do
        (type ? [@filters[type]] : @filters.values).each do |set|
          [:filters, :procs].each do |t|
            if(set[t])
              set[t].delete_if{|v| v == filter}
              set.delete(t) if set[t].empty?
            end
          end
        end
        @filters.delete_if{|k,v|v.empty?}
      end
      nil
    end
filter:: Pipeline::Filter to remove
 type:: Object type filter is applied to.
 Remove Filter from given type. If no type is given all references
 to the given filter will be removed