what happens if both of  these is not true ? We need to make sure that we notify the callerFuture in all cases.