Author: Armin Rigo <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit