Author: Remi Meier <[email protected]>
Branch:
Changeset: r339:e7d1df97b6f0
Date: 2013-07-03 09:54 +0200
http://bitbucket.org/pypy/stmgc/changeset/e7d1df97b6f0/
Log: add stm_thread_local_obj to demo_random.c
diff --git a/c4/demo_random.c b/c4/demo_random.c
--- a/c4/demo_random.c
+++ b/c4/demo_random.c
@@ -293,6 +293,20 @@
td.roots[i] = (gcptr)allocate_node();
}
+ if (td.thread_seed % 3 == 0) {
+ stm_thread_local_obj = (gcptr)allocate_node();
+ }
+ else if (td.thread_seed % 3 == 1) {
+ stm_thread_local_obj = allocate_pseudoprebuilt_with_hash
+ (
+ sizeof(struct node), GCTID_STRUCT_NODE, PREBUILT);
+ ((nodeptr)stm_thread_local_obj)->hash = PREBUILT;
+ }
+ else {
+ stm_thread_local_obj = allocate_pseudoprebuilt
+ (sizeof(struct node), GCTID_STRUCT_NODE);
+ }
+
}
gcptr rare_events(gcptr p, gcptr _r, gcptr _sr)
@@ -432,7 +446,7 @@
w_t->hash = stm_hash((gcptr)w_t);
assert(w_t->hash == stm_hash((gcptr)_t));
}
- if (w_t->hash >= 0 && (w_t->hash < PREBUILT ||
+ if (w_t->hash >= 0 && (w_t->hash <= PREBUILT ||
w_t->hash < SHARED_ROOTS)) {
// should be with predefined hash
assert (stm_id((gcptr)w_t) != stm_hash((gcptr)w_t));
@@ -449,8 +463,11 @@
gcptr _r, _sr;
int num, k;
- num = get_rand(td.num_roots);
- _r = td.roots[num];
+ num = get_rand(td.num_roots+1);
+ if (num == 0)
+ _r = stm_thread_local_obj;
+ else
+ _r = td.roots[num - 1];
num = get_rand(SHARED_ROOTS);
_sr = shared_roots[num];
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit