|
@@ -67,14 +67,14 @@ mode = MODE_UNCONNECTED
|
|
|
prev_mode = None
|
|
|
current_model = None
|
|
|
registered_metamodels = {}
|
|
|
-outputs = Queue.Queue()
|
|
|
+outputs = []
|
|
|
|
|
|
def _output_thread(outputs):
|
|
|
while taskname is None:
|
|
|
time.sleep(0.1)
|
|
|
|
|
|
while 1:
|
|
|
- outputs.put(json.loads(urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "taskname": taskname}))).read()))
|
|
|
+ outputs.append(json.loads(urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "taskname": taskname}))).read()))
|
|
|
|
|
|
thrd = threading.Thread(target=_output_thread, args=[outputs])
|
|
|
thrd.daemon = True
|
|
@@ -183,7 +183,11 @@ def _compile_model(code):
|
|
|
def _output(expected=None):
|
|
|
try:
|
|
|
global last_output
|
|
|
- last_output = outputs.get()
|
|
|
+
|
|
|
+ while not outputs:
|
|
|
+ time.sleep(0.01)
|
|
|
+
|
|
|
+ last_output = outputs.pop(0)
|
|
|
#print("[OUT] %s" % last_output)
|
|
|
except:
|
|
|
raise UnknownError()
|
|
@@ -268,13 +272,12 @@ def init(address_param="http://127.0.0.1:8001", timeout=20.0):
|
|
|
"""Starts up the connection to the Modelverse."""
|
|
|
global mode
|
|
|
global address
|
|
|
- global taskname
|
|
|
address = address_param
|
|
|
start_time = time.time()
|
|
|
- taskname = random.random()
|
|
|
+ task = random.random()
|
|
|
while 1:
|
|
|
try:
|
|
|
- _input_raw('"%s"' % taskname, "task_manager")
|
|
|
+ _input_raw('"%s"' % task, "task_manager")
|
|
|
mode = MODE_UNAUTHORIZED
|
|
|
break
|
|
|
except URLError as e:
|
|
@@ -282,6 +285,8 @@ def init(address_param="http://127.0.0.1:8001", timeout=20.0):
|
|
|
raise ConnectionError(e.reason)
|
|
|
else:
|
|
|
time.sleep(0.1)
|
|
|
+ global taskname
|
|
|
+ taskname = task
|
|
|
|
|
|
def login(username, password):
|
|
|
"""Log in a user, if user doesn't exist, it is created."""
|