Commit 505d966
committed
async: scheduler slots are process-wide, registered once
The C slots are set once per process; per-thread state lives in the
bridge's handlers container. The bridge no longer unregisters at RSHUTDOWN
(it was yanking the slots from under other ZTS threads mid-request) and
skips slot registration when its own module already owns them, so a later
request just re-binds its handlers and launches.
Core: register/unregister run under a mutex (two threads' first
registrations raced the check-then-set), and the module name is copied
into process memory - the bridge was passing a request-local string.1 parent 538dd73 commit 505d966
2 files changed
Lines changed: 55 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
38 | 40 | | |
39 | 41 | | |
| 42 | + | |
| 43 | + | |
40 | 44 | | |
41 | 45 | | |
42 | 46 | | |
| |||
506 | 510 | | |
507 | 511 | | |
508 | 512 | | |
| 513 | + | |
| 514 | + | |
509 | 515 | | |
510 | 516 | | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
511 | 520 | | |
512 | 521 | | |
513 | 522 | | |
514 | | - | |
| 523 | + | |
515 | 524 | | |
516 | 525 | | |
517 | 526 | | |
| |||
599 | 608 | | |
600 | 609 | | |
601 | 610 | | |
602 | | - | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
603 | 616 | | |
604 | 617 | | |
605 | 618 | | |
606 | 619 | | |
607 | 620 | | |
608 | | - | |
609 | | - | |
610 | | - | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
611 | 625 | | |
612 | 626 | | |
613 | | - | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
614 | 633 | | |
615 | 634 | | |
616 | 635 | | |
| |||
633 | 652 | | |
634 | 653 | | |
635 | 654 | | |
| 655 | + | |
| 656 | + | |
636 | 657 | | |
637 | 658 | | |
638 | 659 | | |
639 | 660 | | |
640 | 661 | | |
641 | 662 | | |
642 | 663 | | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
643 | 669 | | |
644 | 670 | | |
645 | 671 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1110 | 1110 | | |
1111 | 1111 | | |
1112 | 1112 | | |
1113 | | - | |
1114 | | - | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
1115 | 1118 | | |
1116 | | - | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
1117 | 1132 | | |
1118 | 1133 | | |
1119 | 1134 | | |
1120 | 1135 | | |
1121 | 1136 | | |
1122 | 1137 | | |
1123 | 1138 | | |
1124 | | - | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
1125 | 1144 | | |
1126 | 1145 | | |
1127 | 1146 | | |
| |||
1372 | 1391 | | |
1373 | 1392 | | |
1374 | 1393 | | |
1375 | | - | |
1376 | | - | |
1377 | | - | |
1378 | | - | |
1379 | 1394 | | |
1380 | 1395 | | |
1381 | 1396 | | |
| |||
0 commit comments