Slightly better -- store only 25 elements of previous freqs state
This commit is contained in:
@@ -11,28 +11,28 @@ lock = threading.Lock()
|
|||||||
class FreqObserver(threading.Thread):
|
class FreqObserver(threading.Thread):
|
||||||
def __init__(self, freqs):
|
def __init__(self, freqs):
|
||||||
threading.Thread.__init__(self)
|
threading.Thread.__init__(self)
|
||||||
self.daemon = True
|
self.daemon,self._end = True, False
|
||||||
self._end = False
|
|
||||||
# freqs is the part of the model to be observed
|
# freqs is the part of the model to be observed
|
||||||
self._freqs = freqs
|
self._freqs = freqs
|
||||||
self._freqs_0 = sorted(self._freqs.iteritems(), key=operator.itemgetter(1), reverse=True)
|
self._freqs_0 = sorted(self._freqs.iteritems(), key=operator.itemgetter(1), reverse=True)[:25]
|
||||||
self.start()
|
self.start()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
while not self._end:
|
while not self._end:
|
||||||
self._update_view()
|
self._update_view()
|
||||||
sleep(0.1)
|
sleep(0.1)
|
||||||
|
self._update_view()
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
self._end = True
|
self._end = True
|
||||||
|
|
||||||
def _update_view(self):
|
def _update_view(self):
|
||||||
lock.acquire()
|
lock.acquire()
|
||||||
freqs_1 = sorted(self._freqs.iteritems(), key=operator.itemgetter(1), reverse=True)
|
freqs_1 = sorted(self._freqs.iteritems(), key=operator.itemgetter(1), reverse=True)[:25]
|
||||||
lock.release()
|
lock.release()
|
||||||
if (freqs_1[0:25] != self._freqs_0[0:25]):
|
if (freqs_1 != self._freqs_0):
|
||||||
self._update_display(freqs_1[0:25])
|
self._update_display(freqs_1)
|
||||||
self._freqs_0 = freqs_1
|
self._freqs_0 = freqs_1
|
||||||
|
|
||||||
def _update_display(self, tuples):
|
def _update_display(self, tuples):
|
||||||
def refresh_screen(data):
|
def refresh_screen(data):
|
||||||
|
|||||||
Reference in New Issue
Block a user