Don't allow futures to be used more than once

Clear the result and exception after getting the result