Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r198:8b48f8933856 Date: 2013-06-19 17:46 +0200 http://bitbucket.org/pypy/stmgc/changeset/8b48f8933856/
Log: Check that the test passes if written this way, retrying up to 1000 times for stm_read_barrier() to return the same pointer. diff --git a/c4/demo2.c b/c4/demo2.c --- a/c4/demo2.c +++ b/c4/demo2.c @@ -98,8 +98,15 @@ r_next = (struct node*)stm_read_barrier((gcptr)tmp); } // results from consecutive read_barriers can differ. needs Ptr_Eq() - /* assert(stm_read_barrier((gcptr)r_prev->next) == r_current */ - /* && stm_read_barrier((gcptr)r_current->next) == r_next); */ + int i = 0; + while (!(stm_read_barrier((gcptr)r_prev->next) == + stm_read_barrier((gcptr)r_current) && + stm_read_barrier((gcptr)r_current->next) == + stm_read_barrier((gcptr)r_next))) { + asm volatile ("pause":::"memory"); /* smp_spinloop() */ + i++; + assert(i < 1000); + } // for now: assert(((nodeptr)stm_read_barrier((gcptr)r_prev->next))->value == r_current->value _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit