From a8c4da5b955eab2eed9ebb03ee4b1212ec6fe042 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sat, 20 Nov 2021 16:08:43 +0100 Subject: Multithreading seems to be working now, it was easier than expected! --- src/pruning.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/pruning.c') diff --git a/src/pruning.c b/src/pruning.c index 1369892..2c6f348 100644 --- a/src/pruning.c +++ b/src/pruning.c @@ -95,7 +95,7 @@ pd_khuge_HTM = { void genptable(PruneData *pd) { - Move ms[NMOVES]; + Move *ms; uint64_t j, oldn; DfsData dd; @@ -112,6 +112,7 @@ genptable(PruneData *pd) fprintf(stderr, "Cannot load %s, generating it\n", pd->filename); + ms = malloc(NMOVES * sizeof(Move)); moveset_to_list(pd->moveset, ms); for (j = 0; j < pd->coord->max; j++) @@ -119,6 +120,7 @@ genptable(PruneData *pd) dd = (DfsData) { .m = 0 }; dd.visited = malloc((ptablesize(pd)/4 + 1) * sizeof(uint8_t)); + dd.sorted_moves = malloc(NMOVES * sizeof(Move)); moveset_to_list(pd->moveset, dd.sorted_moves); oldn = 0; pd->n = 0; @@ -136,14 +138,16 @@ genptable(PruneData *pd) if (!write_ptable_file(pd)) fprintf(stderr, "Error writing ptable file\n"); + free(ms); free(dd.visited); + free(dd.sorted_moves); } */ void genptable(PruneData *pd) { - Move ms[NMOVES]; + Move *ms; int d; uint64_t j, oldn; @@ -161,6 +165,7 @@ genptable(PruneData *pd) fprintf(stderr, "Cannot load %s, generating it\n", pd->filename); + ms = malloc(NMOVES * sizeof(Move)); moveset_to_list(pd->moveset, ms); /* We use 4 bits per value, so any distance >= 15 is set to 15 */ @@ -186,6 +191,7 @@ genptable(PruneData *pd) if (!write_ptable_file(pd)) fprintf(stderr, "Error writing ptable file\n"); + free(ms); } /* -- cgit v1.3