Repository navigation
Commit 91a23d8
rpc interceptors: bound the unwind after outside cancellation; await any awaitable a handler returns
Awaiting the chain directly forwarded an outside cancel (the room disconnecting)
into the chain and kept the invocation task parked until the chain finished, so
a handler that swallowed cancellation held room.disconnect() up to the caller's
deadline. The chain is now awaited through a shield: the cancel is raised here
at once, the chain is cancelled explicitly and given a bounded time to unwind,
and a handler that does not stop is named in a warning.
Handlers are typed as any callable returning a payload or an awaitable of one;
dispatch now checks the result with inspect.isawaitable instead of
iscoroutinefunction, which missed callable objects with an async __call__ and
sync wrappers returning a coroutine.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>1 parent 1db942a commit 91a23d8
2 files changed
Lines changed: 95 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
237 | 238 | | |
238 | 239 | | |
239 | 240 | | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
240 | 245 | | |
241 | 246 | | |
242 | 247 | | |
| |||
658 | 663 | | |
659 | 664 | | |
660 | 665 | | |
661 | | - | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
662 | 671 | | |
663 | 672 | | |
664 | 673 | | |
665 | | - | |
666 | | - | |
667 | | - | |
668 | | - | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
669 | 685 | | |
670 | 686 | | |
671 | 687 | | |
| |||
686 | 702 | | |
687 | 703 | | |
688 | 704 | | |
689 | | - | |
690 | | - | |
691 | | - | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
692 | 712 | | |
693 | 713 | | |
694 | 714 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
324 | 391 | | |
325 | 392 | | |
326 | 393 | | |
| |||
0 commit comments