def add(self, arg, options=None):
fut = tasklets.Future('<STR_LIT>' % (self, arg, options))<EOL>todo = self._queues.get(options)<EOL>if todo is None:<EOL><INDENT>utils.logging_debug('<STR_LIT>',<EOL>self._todo_tasklet.__name__, options)<EOL>if not self._queues:<EOL><INDENT>eventloop.add_idle(self._on_idle)<EOL><DEDENT>todo = self._queues[options] = []<EOL><DEDENT>todo.append((fut, arg))<EOL>if len(todo) >= self._limit:<EOL><INDENT>del self._queues[options]<EOL>self.run_queue(options, todo)<EOL><DEDENT>return fut<EOL>
Adds an arg and gets back a future.

        Args:
          arg: one argument for _todo_tasklet.
          options: rpc options.

        Return:
          An instance of future, representing the result of running
            _todo_tasklet without batching.