use std::future instead of threading building blocks

fewer compilation problems