Author: Armin Rigo <[email protected]>
Branch: stmgc-c7
Changeset: r76006:1be37e1a9afe
Date: 2015-02-20 09:14 +0100
http://bitbucket.org/pypy/pypy/changeset/1be37e1a9afe/

Log:    Cannot call tq.number_of_transactions_executed() when running.

diff --git a/lib_pypy/pypy_test/test_transaction.py 
b/lib_pypy/pypy_test/test_transaction.py
--- a/lib_pypy/pypy_test/test_transaction.py
+++ b/lib_pypy/pypy_test/test_transaction.py
@@ -104,6 +104,14 @@
         raise AssertionError("should have raised NameError")
     assert tq.number_of_transactions_executed() == 4
 
+    tq.add(tq.number_of_transactions_executed)
+    try:
+        tq.run()
+    except transaction.TransactionError:
+        pass
+    else:
+        raise AssertionError("should have raised TransactionError")
+
     def add_transactions(l):
         if l:
             for x in range(l[0]):
diff --git a/lib_pypy/transaction.py b/lib_pypy/transaction.py
--- a/lib_pypy/transaction.py
+++ b/lib_pypy/transaction.py
@@ -177,7 +177,9 @@
             raise exc_type, exc_value, exc_traceback
 
     def number_of_transactions_executed(self):
-        return self._number_transactions_exec
+        if self._pending is self._deque:
+            return self._number_transactions_exec
+        raise TransactionError("TransactionQueue.run() is currently running")
 
     def _thread_runner(self, locks, lock_done_running, lock_deque,
                        exception, nb_segments):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to