--- src/libdar/parallel_tronconneuse.cpp.orig 2022-04-13 16:16:59 UTC +++ src/libdar/parallel_tronconneuse.cpp @@ -91,21 +91,21 @@ namespace libdar { U_I tmp_bs1, tmp_bs2; - scatter = make_shared >(get_ratelier_size(num_workers)); + scatter.reset(new (nothrow) ratelier_scatter(get_ratelier_size(num_workers))); if(!scatter) throw Ememory("parallel_tronconneuse::parallel_tronconneuse"); - gather = make_shared >(get_ratelier_size(num_workers)); + gather.reset(new (nothrow) ratelier_gather(get_ratelier_size(num_workers))); if(!gather) throw Ememory("parallel_tronconneuse::parallel_tronconneuse"); - waiter = make_shared(num_workers + 2); // +1 for crypto_reade thread, +1 this thread + waiter.reset(new (nothrow) barrier(num_workers + 2)); if(!waiter) throw Ememory("parallel_tronconneuse::parallel_tronconneuse"); // tas is created empty - tas = make_shared >(); + tas.reset(new (nothrow) heap()); if(!tas) throw Ememory("parallel_tronconneuse::parallel_tronconneuse");