/rev/c8e3e05b8be9
changeset: 1252:c8e3e05b8be9
user:      Marcel Keller <[email protected]>
date:      Mon Sep 28 16:09:04 2009 +0200
summary:   Fork program counter for preprocessed operations.

diffstat:

 viff/runtime.py |  7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diffs (24 lines):

diff -r 2bbab8b5597f -r c8e3e05b8be9 viff/runtime.py
--- a/viff/runtime.py   Mon Sep 28 15:59:57 2009 +0200
+++ b/viff/runtime.py   Mon Sep 28 16:09:04 2009 +0200
@@ -425,6 +425,7 @@
 
         @wrapper(method)
         def preprocess_wrapper(self, *args, **kwargs):
+            self.increment_pc()
             pc = tuple(self.program_counter)
             try:
                 return self._pool.pop(pc)
@@ -432,7 +433,11 @@
                 key = (generator, args)
                 pcs = self._needed_data.setdefault(key, [])
                 pcs.append(pc)
-                return method(self, *args, **kwargs)
+                self.fork_pc()
+                try:
+                    return method(self, *args, **kwargs)
+                finally:
+                    self.unfork_pc()
 
         return preprocess_wrapper
     return preprocess_decorator
_______________________________________________
viff-commits mailing list
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-commits-viff.dk

Reply via email to