Author: Armin Rigo <[email protected]>
Branch: stmgc-c8-gil-like
Changeset: r78053:b64a78fbfd32
Date: 2015-06-12 19:12 +0200
http://bitbucket.org/pypy/pypy/changeset/b64a78fbfd32/
Log: Fix tests
diff --git a/rpython/translator/stm/funcgen.py
b/rpython/translator/stm/funcgen.py
--- a/rpython/translator/stm/funcgen.py
+++ b/rpython/translator/stm/funcgen.py
@@ -205,20 +205,21 @@
return '%s = stm_should_break_transaction();' % (result,)
def stm_set_transaction_length(funcgen, op):
- arg0 = funcgen.expr(op.args[0])
- return 'stm_fill_mark_nursery_bytes = %s;' % (arg0,)
+ arg0 = funcgen.expr(op.args[0]) # 'double': fraction
+ return 'pypy_stm_set_transaction_length(%s);' % (arg0,)
def stm_transaction_break(funcgen, op):
return 'stm_force_transaction_break(&stm_thread_local);'
def stm_increment_atomic(funcgen, op):
- XXX
+ return r'fprintf(stderr, "stm_increment_atomic: reimplement\n"); abort();'
def stm_decrement_atomic(funcgen, op):
- XXX
+ return r'fprintf(stderr, "stm_decrement_atomic: reimplement\n"); abort();'
def stm_get_atomic(funcgen, op):
- XXX
+ result = funcgen.expr(op.result)
+ return '%s = 0; // XXX stm_get_atomic' % (result,)
def stm_is_inevitable(funcgen, op):
result = funcgen.expr(op.result)
diff --git a/rpython/translator/stm/src_stm/stmgcintf.c
b/rpython/translator/stm/src_stm/stmgcintf.c
--- a/rpython/translator/stm/src_stm/stmgcintf.c
+++ b/rpython/translator/stm/src_stm/stmgcintf.c
@@ -64,6 +64,11 @@
stm_rewind_jmp_leaveframe(&stm_thread_local, &rjbuf);
}
+void pypy_stm_set_transaction_length(double fraction)
+{
+ stm_fill_mark_nursery_bytes = (uintptr_t)(NURSERY_SIZE * fraction / 4);
+}
+
void pypy_stm_teardown(void)
{
pypy_stm_unregister_thread_local();
diff --git a/rpython/translator/stm/test/test_ztranslated.py
b/rpython/translator/stm/test/test_ztranslated.py
--- a/rpython/translator/stm/test/test_ztranslated.py
+++ b/rpython/translator/stm/test/test_ztranslated.py
@@ -385,8 +385,7 @@
def main(argv):
lst[42] = 43
lst2[999] = lst
- llop.stm_commit_if_not_atomic(lltype.Void)
- llop.stm_start_if_not_atomic(lltype.Void)
+ llop.stm_transaction_break(lltype.Void)
print 'did not crash', lst2[999][42]
return 0
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit