diff options
| author | Sebastiano Tronto <sebastiano.tronto@gmail.com> | 2021-11-20 16:08:43 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano.tronto@gmail.com> | 2021-11-20 16:08:43 +0100 |
| commit | a8c4da5b955eab2eed9ebb03ee4b1212ec6fe042 (patch) | |
| tree | 3fe233ce2883545ec42d2c3cf5661fba3818fb9d /src/pruning.c | |
| parent | 0df4f6f98101bb3be192ce892aa1452f2c6de1a4 (diff) | |
| download | nissy-a8c4da5b955eab2eed9ebb03ee4b1212ec6fe042.tar.gz nissy-a8c4da5b955eab2eed9ebb03ee4b1212ec6fe042.zip | |
Multithreading seems to be working now, it was easier than expected!
Diffstat (limited to 'src/pruning.c')
| -rw-r--r-- | src/pruning.c | 10 |
1 files changed, 8 insertions, 2 deletions
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 = { | |||
| 95 | void | 95 | void |
| 96 | genptable(PruneData *pd) | 96 | genptable(PruneData *pd) |
| 97 | { | 97 | { |
| 98 | Move ms[NMOVES]; | 98 | Move *ms; |
| 99 | uint64_t j, oldn; | 99 | uint64_t j, oldn; |
| 100 | DfsData dd; | 100 | DfsData dd; |
| 101 | 101 | ||
| @@ -112,6 +112,7 @@ genptable(PruneData *pd) | |||
| 112 | 112 | ||
| 113 | fprintf(stderr, "Cannot load %s, generating it\n", pd->filename); | 113 | fprintf(stderr, "Cannot load %s, generating it\n", pd->filename); |
| 114 | 114 | ||
| 115 | ms = malloc(NMOVES * sizeof(Move)); | ||
| 115 | moveset_to_list(pd->moveset, ms); | 116 | moveset_to_list(pd->moveset, ms); |
| 116 | 117 | ||
| 117 | for (j = 0; j < pd->coord->max; j++) | 118 | for (j = 0; j < pd->coord->max; j++) |
| @@ -119,6 +120,7 @@ genptable(PruneData *pd) | |||
| 119 | 120 | ||
| 120 | dd = (DfsData) { .m = 0 }; | 121 | dd = (DfsData) { .m = 0 }; |
| 121 | dd.visited = malloc((ptablesize(pd)/4 + 1) * sizeof(uint8_t)); | 122 | dd.visited = malloc((ptablesize(pd)/4 + 1) * sizeof(uint8_t)); |
| 123 | dd.sorted_moves = malloc(NMOVES * sizeof(Move)); | ||
| 122 | moveset_to_list(pd->moveset, dd.sorted_moves); | 124 | moveset_to_list(pd->moveset, dd.sorted_moves); |
| 123 | oldn = 0; | 125 | oldn = 0; |
| 124 | pd->n = 0; | 126 | pd->n = 0; |
| @@ -136,14 +138,16 @@ genptable(PruneData *pd) | |||
| 136 | if (!write_ptable_file(pd)) | 138 | if (!write_ptable_file(pd)) |
| 137 | fprintf(stderr, "Error writing ptable file\n"); | 139 | fprintf(stderr, "Error writing ptable file\n"); |
| 138 | 140 | ||
| 141 | free(ms); | ||
| 139 | free(dd.visited); | 142 | free(dd.visited); |
| 143 | free(dd.sorted_moves); | ||
| 140 | } | 144 | } |
| 141 | */ | 145 | */ |
| 142 | 146 | ||
| 143 | void | 147 | void |
| 144 | genptable(PruneData *pd) | 148 | genptable(PruneData *pd) |
| 145 | { | 149 | { |
| 146 | Move ms[NMOVES]; | 150 | Move *ms; |
| 147 | int d; | 151 | int d; |
| 148 | uint64_t j, oldn; | 152 | uint64_t j, oldn; |
| 149 | 153 | ||
| @@ -161,6 +165,7 @@ genptable(PruneData *pd) | |||
| 161 | 165 | ||
| 162 | fprintf(stderr, "Cannot load %s, generating it\n", pd->filename); | 166 | fprintf(stderr, "Cannot load %s, generating it\n", pd->filename); |
| 163 | 167 | ||
| 168 | ms = malloc(NMOVES * sizeof(Move)); | ||
| 164 | moveset_to_list(pd->moveset, ms); | 169 | moveset_to_list(pd->moveset, ms); |
| 165 | 170 | ||
| 166 | /* We use 4 bits per value, so any distance >= 15 is set to 15 */ | 171 | /* We use 4 bits per value, so any distance >= 15 is set to 15 */ |
| @@ -186,6 +191,7 @@ genptable(PruneData *pd) | |||
| 186 | if (!write_ptable_file(pd)) | 191 | if (!write_ptable_file(pd)) |
| 187 | fprintf(stderr, "Error writing ptable file\n"); | 192 | fprintf(stderr, "Error writing ptable file\n"); |
| 188 | 193 | ||
| 194 | free(ms); | ||
| 189 | } | 195 | } |
| 190 | 196 | ||
| 191 | /* | 197 | /* |
