Example #1
0
    def __init__(
        self, object_allocator, args, kwargs, size = 0, timeout = None):

        self._timeout     = timeout
        self._item_args   = args
        self._item_kwargs = kwargs
        self._item_alloc  = object_allocator
        self._item_max    = size
        self._item_out    = 0

        self._out_total   = 0L
        self._out_time    = 0
        self._out_max     = 0

        self._item_list = []
        self._item_refs = {}
        self._item_time = {}
        self._item_cond = coro.stats_cond(timeout = self._timeout)
Example #2
0
    def __init__(self, object_allocator, args, kwargs, **kw):
        #
        #
        #
        self._timeout   = kw.get('timeout', None)
        self._patient   = kw.get('patient', False)
        self._active    = True
        self._item_out  = 0
        self._item_list = ElementContainer()

        self._item_refs = {}
        self._item_save = {}
        self._item_time = {}

        self._out_total = 0L
        self._out_time  = 0
        self._out_max   = 0

        self._item_args   = args
        self._item_kwargs = kwargs
        self._item_alloc  = object_allocator
        #
        # priority list is presented lowest to highest
        #
        self._item_max    = {}
        self._item_queues = {}
        self._item_prios  = []

        size  = kw.get('size', 0)
        prios = kw.get('prios', [DEFAULT_PRIORITY])

        for index in range(len(prios)):
            if isinstance(prios[index], type(tuple())):
                size += prios[index][1]
                prio  = prios[index][0]
            else:
                prio  = prios[index]

            self._item_queues[prio] = coro.stats_cond(timeout = self._timeout)
            self._item_max[prio]    = size

            self._item_prios.insert(0, prio)