diff --git a/src/space.c b/src/space.c index 5f76055f5e2ee8926aace22b24c771196c4f557d..8c66227180dadd9071a73819b90d9ba6892d9939 100644 --- a/src/space.c +++ b/src/space.c @@ -1253,7 +1253,9 @@ void space_split_mapper(void *map_data, int num_elements, void *extra_data) { struct xpart *xparts = c->xparts; /* Check the depth. */ - if (c->depth > s->maxdepth) s->maxdepth = c->depth; + while (c->depth > (maxdepth = s->maxdepth)) { + atomic_cas(&s->maxdepth, maxdepth, c->depth); + } /* Split or let it be? */ if (count > space_splitsize || gcount > space_splitsize) {