Commit 92bfb44
committed
Refactor run_async loop to wait on queued events and futures at the same time
Fixes ros2/launch_ros#169
Otherwise, it's possible to get into a hung state where we wait for an event,
even though there are no more events. This is because the check for an "idle"
state evaluates to "True" as we wait for some futures to complete.
By waiting for futures and events concurrently, we can avoid this problem.
Further, we don't have to wait for an event if there's nothing in the queue.
Signed-off-by: Jacob Perron <[email protected]>1 parent b847fe4 commit 92bfb44
1 file changed
Lines changed: 21 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
338 | 338 | | |
339 | 339 | | |
340 | 340 | | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
348 | 354 | | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
363 | 363 | | |
364 | 364 | | |
365 | 365 | | |
| |||
0 commit comments