diff --git a/src/engine_maketasks.c b/src/engine_maketasks.c index 59784b8bdc33bd7683c9d634d122d50135e09a3e..40b34d8b20af7061ae117aa00b60fa2ce8ee5c64 100644 --- a/src/engine_maketasks.c +++ b/src/engine_maketasks.c @@ -4644,8 +4644,12 @@ void engine_make_fof_tasks(struct engine *e) { struct scheduler *sched = &e->sched; ticks tic = getticks(); - if (e->restarting) error("Running FOF on a restart step!"); + if (e->restarting) { + /* Re-set the scheduler. */ + scheduler_reset(sched, engine_estimate_nr_tasks(e)); + } + /* Construct a FOF loop over neighbours */ if (e->policy & engine_policy_fof) threadpool_map(&e->threadpool, engine_make_fofloop_tasks_mapper, NULL,