Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r157:c6e6c1abc9e2 Date: 2013-06-16 18:37 +0200 http://bitbucket.org/pypy/stmgc/changeset/c6e6c1abc9e2/
Log: Fix diff --git a/c4/atomic_ops.h b/c4/atomic_ops.h --- a/c4/atomic_ops.h +++ b/c4/atomic_ops.h @@ -96,13 +96,17 @@ #endif -#define spinlock_acquire(lock, targetvalue) \ - do { if (bool_cas(&(lock), 0, (targetvalue))) break; \ - do { smp_spinloop(); } while (ACCESS_ONCE(lock)); \ +#define spinlock_acquire(lock, targetvalue) \ + do { if (bool_cas(&(lock), 0, (targetvalue))) { \ + fprintf(stderr, "<<< locked %d\n", (int)targetvalue); \ + break; \ + } \ + do { smp_spinloop(); } while (ACCESS_ONCE(lock)); \ } while (1) -#define spinlock_release(lock) \ - do { smp_wmb(); assert((lock) != 0); (lock) = 0; } while (0) +#define spinlock_release(lock) \ + do { fprintf(stderr, "unlocked >>>\n"); smp_wmb(); \ + assert((lock) != 0); (lock) = 0; } while (0) #endif /* _SRCSTM_ATOMIC_OPS_ */ diff --git a/c4/et.c b/c4/et.c --- a/c4/et.c +++ b/c4/et.c @@ -112,7 +112,8 @@ gcptr P_prev = P; P = (gcptr)v; - assert(P->h_tid & GCFLAG_PUBLIC); + assert((P->h_tid & GCFLAG_PUBLIC) || + (P_prev->h_tid & GCFLAG_NURSERY_MOVED)); v = ACCESS_ONCE(P->h_revision); _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit