Показать сообщение отдельно

  #167  
Старый 10.06.2009, 14:45
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
С нами: 9427413

Репутация: 973


По умолчанию

Пипец, как бы ни прискорбно, но для threads-safe счетчика пришлось таки юзать класс - взял готовый мини-счетчик с маиллиста питона и переделал его немного по своему
Код:
class Counter:
    def __init__(self, start=0, increment=1):
        self.counter = start
        self.increment = increment
        self.lock = threading.RLock()
    def __call__(self):
        self.lock.acquire()
        self.counter += self.increment
        i = self.counter
        self.lock.release()
        return i
    def Get(self):
        self.lock.acquire()
        i = self.counter
        self.lock.release()
        return i
    def Clear(self):
        self.lock.acquire()
        self.counter = 0
        i = self.counter
        self.lock.release()
        return i
 
Ответить с цитированием