[Future] improve cancellation
- Improve warn message in Future::cancel()
- Don't cancel a Future in the destructor if it was already cancelled or received
- Restructure CancelFutureTest into single separate test cases
With this I can not reproduce the CancelFutureTest
failures anymore
neither SIGABRT
nor the timeout
.
I tested the CancelFutureTest
(10 times) on various build configurations with out any failure:
meson build-release --buildtype=release
meson build-debugoptimized
meson build-stats -Dstats=true
meson build-stats-laws -Dstats=true -Ddefault_scheduling_strategy=locality_aware_work_stealing
meson build-ci-failure -Dstats=true -Dio=false
for d in build-*
do
meson test -C ${d} CancelFutureTest --repeat=10
done
Not sure if this resolves #16 (closed). I will keep it open for now.