future::swap