Author: Armin Rigo <[email protected]>
Branch:
Changeset: r172:0d47af9a8ec0
Date: 2013-06-17 14:35 +0200
http://bitbucket.org/pypy/stmgc/changeset/0d47af9a8ec0/
Log: Next test
diff --git a/c4/test/support.py b/c4/test/support.py
--- a/c4/test/support.py
+++ b/c4/test/support.py
@@ -337,9 +337,11 @@
acquire_lock(_lck1)
_lck1.release()
#
- fn(self)
+ set_value = fn(self)
finally:
lib.stm_finalize()
+ if set_value is not None:
+ self.set_afterwards(set_value)
except Interrupted:
pass
except:
@@ -378,6 +380,14 @@
print 'set(%d)' % num
self._get_lock(num).release()
+ def set_afterwards(self, num):
+ # Set the value of 'self.step' to 'num'.
+ with self.settinglock:
+ self._get_lock(self.step).acquire()
+ self.step = num
+ print 'set_afterwards(%d)' % num
+ self._get_lock(num).release()
+
def set_interrupted(self):
with self.settinglock:
self.step = Interrupted
diff --git a/c4/test/test_gcpage.py b/c4/test/test_gcpage.py
--- a/c4/test/test_gcpage.py
+++ b/c4/test/test_gcpage.py
@@ -72,3 +72,18 @@
lib.stm_initialize_and_set_max_abort(0) # reuse the same
assert count_global_pages() == 0
assert count_pages() == 1
+
+def test_move_away_as_full_pages_2():
+ def f1(r):
+ assert count_global_pages() == 0
+ oalloc(HDR)
+ assert count_pages() == 1
+ return 2
+ def f2(r):
+ r.wait(2)
+ assert count_global_pages() == 1
+ assert count_pages() == 0
+ oalloc(HDR)
+ assert count_global_pages() == 1
+ assert count_pages() == 1
+ run_parallel(f1, f2)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit