multithreading fix

This commit is contained in:
simon 2019-12-19 09:15:07 -05:00
parent 5784bcee5c
commit 1de2bf81cd

View File

@ -2,6 +2,7 @@ import time
import atexit import atexit
import siphash import siphash
from threading import Lock
last_time_called = dict() last_time_called = dict()
@ -30,11 +31,12 @@ def buffered(batch_size: int, flush_on_exit: bool = False):
def decorate(func): def decorate(func):
buffer = [] buffer = []
lock = Lock()
if flush_on_exit: if flush_on_exit:
atexit.register(func, buffer) atexit.register(func, buffer)
def wrapper(items): def wrapper(items):
with lock:
for item in items: for item in items:
buffer.append(item) buffer.append(item)