code: def punsubscribe_proc(pattern, proc)
        df = EM::DefaultDeferrable.new
        if @psub_callbacks[pattern].delete(proc)
          if @psub_callbacks[pattern].any?
            # Succeed deferrable immediately - no need to punsubscribe
            df.succeed
          else
            punsubscribe(pattern).callback { |_|
              df.succeed
            }
          end
        else
          df.fail
        end
        return df
      end
docs: Unsubscribe a given callback from a pattern. Will unsubscribe from redis
   if there are no remaining subscriptions on this pattern
  
   @return [Deferrable] Succeeds when the punsubscribe has completed or
     fails if callback could not be found. Note that success may happen
     immediately in the case that there are other callbacks for the same
     pattern (and therefore no punsubscription from redis is necessary)