This commit is contained in:
Michael Davidsaver
2013-03-31 18:48:46 -04:00
parent 27c70656f7
commit 5415ad3472

View File

@ -30,7 +30,7 @@ class IOScanListBlock(object):
def __init__(self): def __init__(self):
super(IOScanListBlock,self).__init__() super(IOScanListBlock,self).__init__()
self._recs, self._recs_add, self._recs_remove = set(), set(), set() self._recs, self._recs_add, self._recs_remove = set(), set(), set()
self._running = False self.force, self._running = 2, False
def add(self, rec): def add(self, rec):
assert isinstance(rec, Record) assert isinstance(rec, Record)
@ -42,9 +42,9 @@ class IOScanListBlock(object):
else: else:
self._recs.add(rec) self._recs.add(rec)
return self._remove return self.remove
def _remove(self, rec): def remove(self, rec):
if self._running: if self._running:
self._recs_add.discard(rec) self._recs_add.discard(rec)
self._recs_add._recs_remove(rec) self._recs_add._recs_remove(rec)
@ -58,7 +58,7 @@ class IOScanListBlock(object):
for R in self._recs: for R in self._recs:
if mask and R in mask: if mask and R in mask:
continue continue
R.scan(sync=True, reason=reason, force=2) R.scan(sync=True, reason=reason, force=self.force)
finally: finally:
self._running = False self._running = False
if self._recs_add or self._recs_remove: if self._recs_add or self._recs_remove:
@ -98,9 +98,9 @@ class IOScanListThread(IOScanListBlock):
with self._lock: with self._lock:
return super(IOScanListThread,self).add(rec) return super(IOScanListThread,self).add(rec)
def _remove(self, rec): def remove(self, rec):
with self._lock: with self._lock:
return super(IOScanListThread,self)._remove(rec) return super(IOScanListThread,self).remove(rec)
def interrupt(self, reason=None, mask=None, whendone=_default_whendone): def interrupt(self, reason=None, mask=None, whendone=_default_whendone):
W = self.getworker() W = self.getworker()