Slightly better -- store only 25 elements of previous freqs state

This commit is contained in:
Crista Lopes
2014-01-02 09:32:59 -08:00
parent 00f16500f7
commit 2ec7080841

View File

@@ -11,28 +11,28 @@ lock = threading.Lock()
class FreqObserver(threading.Thread):
def __init__(self, freqs):
threading.Thread.__init__(self)
self.daemon = True
self._end = False
self.daemon,self._end = True, False
# freqs is the part of the model to be observed
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()
def run(self):
while not self._end:
self._update_view()
sleep(0.1)
self._update_view()
def stop(self):
self._end = True
def _update_view(self):
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()
if (freqs_1[0:25] != self._freqs_0[0:25]):
self._update_display(freqs_1[0:25])
self._freqs_0 = freqs_1
if (freqs_1 != self._freqs_0):
self._update_display(freqs_1)
self._freqs_0 = freqs_1
def _update_display(self, tuples):
def refresh_screen(data):