| 264 | |
| 265 | #[pymethod] |
| 266 | fn set_result(zelf: PyRef<Self>, result: PyObjectRef, vm: &VirtualMachine) -> PyResult<()> { |
| 267 | if zelf.fut_loop.read().is_none() { |
| 268 | return Err(vm.new_runtime_error("Future object is not initialized.")); |
| 269 | } |
| 270 | if zelf.fut_state.load() != FutureState::Pending { |
| 271 | return Err(new_invalid_state_error(vm, "invalid state")); |
| 272 | } |
| 273 | *zelf.fut_result.write() = Some(result); |
| 274 | zelf.fut_state.store(FutureState::Finished); |
| 275 | Self::schedule_callbacks(&zelf, vm)?; |
| 276 | Ok(()) |
| 277 | } |
| 278 | |
| 279 | #[pymethod] |
| 280 | fn set_exception( |