فهرست منبع

More info in stack traces

Yentl Van Tendeloo 7 سال پیش
والد
کامیت
31a6e41e2f
4فایلهای تغییر یافته به همراه12 افزوده شده و 6 حذف شده
  1. 2 1
      hybrid_server/classes/mvkcontroller.xml
  2. 3 1
      hybrid_server/classes/task.xml
  3. 6 3
      kernel/modelverse_kernel/main.py
  4. 1 1
      wrappers/modelverse_SCCD.py

+ 2 - 1
hybrid_server/classes/mvkcontroller.xml

@@ -310,6 +310,7 @@
                     <state id="mvs_GC">
                         <onentry>
                             <script>
+                                print("Modelverse Garbage Collection")
                                 self.execute_modelverse("", "protect_temporary_variables", [])
                                 self.mvs.purge()
                                 self.execute_modelverse("", "unprotect_temporary_variables", [])
@@ -320,7 +321,7 @@
                             </script>
                             <raise scope="broad" event="resume_task"/>
                         </onentry>
-                        <transition after="self.sccd_yield() + 300" target="."/>
+                        <transition after="self.sccd_yield() + 100" target="."/>
                     </state>
                 </state>
             </parallel>

+ 3 - 1
hybrid_server/classes/task.xml

@@ -51,9 +51,11 @@
                 for gen in stack:
                     try:
                         line = getattr(getattr(gen, 'gi_frame', {}), 'f_lineno', None)
+                        variables = getattr(getattr(gen, "gi_frame", {}), 'f_locals', None)
                     except:
                         line = "?"
-                    printed_stack.append("%s:%s" % (gen.__name__, line))
+                        variables = "?"
+                    printed_stack.append("%s:%s {%s}" % (gen.__name__, line, variables))
                 print("Stack @ MvK:\n" + str("\n".join(printed_stack)))
                 print(traceback.format_exc())
                 return (float('inf'), False)

+ 6 - 3
kernel/modelverse_kernel/main.py

@@ -68,9 +68,12 @@ class ModelverseKernel(object):
 
         to_protect = set()
         for gen in generators:
-            variables = gen.gi_frame.f_locals
-            for var in variables.values():
-                to_protect |= self.try_to_protect(var)
+            try:
+                variables = gen.gi_frame.f_locals
+                for var in variables.values():
+                    to_protect |= self.try_to_protect(var)
+            except:
+                pass
 
         # Create the node to which everything is attached
         self.fixed_node, = yield [("CN", [])]

+ 1 - 1
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Tue May 22 12:02:05 2018
+Date:   Tue May 22 16:39:01 2018
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server