future: improve exception safety
future: improve exception safety

Only update the state after copying or moving the data, so that if
an exception is thrown, we are still consistent.

wildinto/seastar,cloudius-systems/seastar,anzihenry/seastar,dwdm/seastar,scylladb/scylla-seastar,joerg84/seastar,avikivity/seastar,chunshengster/seastar,acbellini/seastar,jonathanleang/seastar,koolhazz/seastar,dreamsxin/seastar,sjperkins/seastar,flashbuckets/seastar,bowlofstew/seastar,stamhe/seastar,stamhe/seastar,syuu1228/seastar,dwdm/seastar,linearregression/seastar,kjniemi/seastar,shyamalschandra/seastar,dreamsxin/seastar,flashbuckets/seastar,norcimo5/seastar,koolhazz/seastar,chunshengster/seastar,linearregression/seastar,xtao/seastar,stamhe/seastar,printedheart/seastar,tempbottle/seastar,leejir/seastar,hongliangzhao/seastar,scylladb/scylla-seastar,syuu1228/seastar,anzihenry/seastar,kjniemi/seastar,bowlofstew/seastar,tempbottle/seastar,xtao/seastar,cloudius-systems/seastar,scylladb/seastar,sjperkins/seastar,scylladb/seastar,leejir/seastar,xtao/seastar,syuu1228/seastar,norcimo5/seastar,joerg84/seastar,hongliangzhao/seastar,dreamsxin/seastar,jonathanleang/seastar,scylladb/scylla-seastar,avikivity/seastar,shyamalschandra/seastar,linearregression/seastar,leejir/seastar,koolhazz/seastar,hongliangzhao/seastar,printedheart/seastar,sjperkins/seastar,shyamalschandra/seastar,jonathanleang/seastar,chunshengster/seastar,acbellini/seastar,wildinto/seastar,kjniemi/seastar,printedheart/seastar,wildinto/seastar,acbellini/seastar,scylladb/seastar,joerg84/seastar,tempbottle/seastar,anzihenry/seastar,norcimo5/seastar,avikivity/seastar,dwdm/seastar,cloudius-systems/seastar,bowlofstew/seastar,flashbuckets/seastar