Skip to content

Commit e8e4512

Browse files
author
Andrew J Westlake
committed
Changed signature of get_event_loop to return &PyAny
1 parent 5e3c0cb commit e8e4512

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

pytests/test_run_forever.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,12 @@ fn main() {
1717
tokio::time::sleep(Duration::from_secs(1)).await;
1818

1919
Python::with_gil(|py| {
20-
let event_loop = pyo3_asyncio::get_event_loop();
20+
let event_loop = pyo3_asyncio::get_event_loop(py);
2121

2222
event_loop
2323
.call_method1(
24-
py,
2524
"call_soon_threadsafe",
26-
(event_loop
27-
.getattr(py, "stop")
28-
.map_err(dump_err(py))
29-
.unwrap(),),
25+
(event_loop.getattr("stop").map_err(dump_err(py)).unwrap(),),
3026
)
3127
.map_err(dump_err(py))
3228
.unwrap();

src/lib.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,11 @@ fn try_init(py: Python) -> PyResult<()> {
175175
}
176176

177177
/// Get a reference to the Python Event Loop from Rust
178-
pub fn get_event_loop() -> PyObject {
179-
EVENT_LOOP.get().unwrap().clone()
178+
pub fn get_event_loop(py: Python) -> &PyAny {
179+
EVENT_LOOP
180+
.get()
181+
.expect("PyO3 Asyncio Event Loop has not been initialized")
182+
.as_ref(py)
180183
}
181184

182185
/// Run the event loop forever
@@ -201,14 +204,13 @@ pub fn get_event_loop() -> PyObject {
201204
/// pyo3_asyncio::spawn(async move {
202205
/// tokio::time::sleep(Duration::from_secs(1)).await;
203206
/// Python::with_gil(|py| {
204-
/// let event_loop = pyo3_asyncio::get_event_loop();
207+
/// let event_loop = pyo3_asyncio::get_event_loop(py);
205208
///
206209
/// event_loop
207210
/// .call_method1(
208-
/// py,
209211
/// "call_soon_threadsafe",
210212
/// (event_loop
211-
/// .getattr(py, "stop")
213+
/// .getattr("stop")
212214
/// .map_err(|e| e.print_and_set_sys_last_vars(py))
213215
/// .unwrap(),),
214216
/// )

0 commit comments

Comments
 (0)