'Constructor.
Fields:
current: a FIFO list of (callback, args, kwds). These callbacks
run immediately when the eventloop runs.
idlers: a FIFO list of (callback, args, kwds). Thes callbacks
run only when no other RPCs need to be fired first.
For example, AutoBatcher uses idler to fire a batch RPC even before
the batch is full.
queue: a sorted list of (absolute time in sec, callback, args, kwds),
sorted by time. These callbacks run only after the said time.
rpcs: a map from rpc to (callback, args, kwds). Callback is called
when the rpc finishes.'

def __init__(self):

    self.current = collections.deque()
    self.idlers = collections.deque()
    self.inactive = 0
    self.queue = []
    self.rpcs = {}
