From e07ead79ac6e6897f5c6fa8d84a380ae99b028f8 Mon Sep 17 00:00:00 2001
From: MaZderMind <git@mazdermind.de>
Date: Sun, 10 Jan 2016 11:19:44 +0100
Subject: always shedule on_loop/on_write on i/o to actively mitigate
 race-conditions, fixes #43

---
 voctocore/lib/controlserver.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

(limited to 'voctocore/lib')

diff --git a/voctocore/lib/controlserver.py b/voctocore/lib/controlserver.py
index 2dc6e1c..016d20c 100644
--- a/voctocore/lib/controlserver.py
+++ b/voctocore/lib/controlserver.py
@@ -55,9 +55,8 @@ class ControlServer(TCPMultiConnection):
 				self.close_connection(conn)
 				return False
 
-			if self.command_queue.empty():
-				self.log.debug('command_queue was empty, re-starting on_loop scheduling')
-				GObject.idle_add(self.on_loop)
+			self.log.debug('re-starting on_loop scheduling')
+			GObject.idle_add(self.on_loop)
 
 			self.command_queue.put((line, conn))
 
@@ -135,9 +134,8 @@ class ControlServer(TCPMultiConnection):
 	def _schedule_write(self, conn, message):
 		queue = self.currentConnections[conn]
 
-		if queue.empty():
-			self.log.debug('write_queue[%u] was empty, re-starting on_write scheduling', conn.fileno())
-			GObject.io_add_watch(conn, GObject.IO_OUT, self.on_write)
+		self.log.debug('re-starting on_write scheduling', conn.fileno())
+		GObject.io_add_watch(conn, GObject.IO_OUT, self.on_write)
 
 		queue.put(message)
 
-- 
cgit v1.2.3