[pypy-commit] stmgc c7-more-segments: Trying to use three threads. Buggy still.
arigo
noreply at buildbot.pypy.org
Sun Mar 16 11:55:42 CET 2014
Author: Armin Rigo <arigo at tunes.org>
Branch: c7-more-segments
Changeset: r1037:d9d666092944
Date: 2014-03-16 11:51 +0100
http://bitbucket.org/pypy/stmgc/changeset/d9d666092944/
Log: Trying to use three threads. Buggy still.
diff --git a/c7/demo/demo2.c b/c7/demo/demo2.c
--- a/c7/demo/demo2.c
+++ b/c7/demo/demo2.c
@@ -6,6 +6,7 @@
#include "stmgc.h"
+#define NTHREADS 3
#define LIST_LENGTH 2000
#define BUNCH 100
@@ -223,7 +224,7 @@
int main(void)
{
- int status;
+ int status, i;
status = sem_init(&done, 0, 0); assert(status == 0);
@@ -233,11 +234,13 @@
setup_list();
- newthread(demo2, (void*)1);
- newthread(demo2, (void*)2);
+ for (i = 1; i <= NTHREADS; i++) {
+ newthread(demo2, (void*)(uintptr_t)i);
+ }
- status = sem_wait(&done); assert(status == 0);
- status = sem_wait(&done); assert(status == 0);
+ for (i = 1; i <= NTHREADS; i++) {
+ status = sem_wait(&done); assert(status == 0);
+ }
final_check();
diff --git a/c7/stm/core.c b/c7/stm/core.c
--- a/c7/stm/core.c
+++ b/c7/stm/core.c
@@ -529,6 +529,7 @@
static void abort_with_mutex(void)
{
+ assert(_has_mutex());
dprintf(("~~~ ABORT\n"));
switch (STM_PSEGMENT->transaction_state) {
diff --git a/c7/stm/core.h b/c7/stm/core.h
--- a/c7/stm/core.h
+++ b/c7/stm/core.h
@@ -15,7 +15,7 @@
#define NB_PAGES (1500*256) // 1500MB
-#define NB_SEGMENTS 2
+#define NB_SEGMENTS 3
#define NB_SEGMENTS_MAX 240 /* don't increase NB_SEGMENTS past this */
#define MAP_PAGES_FLAGS (MAP_SHARED | MAP_ANONYMOUS | MAP_NORESERVE)
#define NB_NURSERY_PAGES (STM_GC_NURSERY/4)
diff --git a/c7/stm/sync.c b/c7/stm/sync.c
--- a/c7/stm/sync.c
+++ b/c7/stm/sync.c
@@ -260,6 +260,7 @@
{
assert(_safe_points_requested == false);
assert((_safe_points_requested = true, 1));
+ assert(_has_mutex());
long i;
for (i = 1; i <= NB_SEGMENTS; i++) {
More information about the pypy-commit
mailing list