Commit 50c97f2
authored
Add erlang.sleep() with dirty scheduler release (#24)
* Add erlang.sleep() with callback-based sync suspension
Add erlang.sleep() function that works in both async and sync contexts:
- Async: returns asyncio.sleep() which uses Erlang timer system
- Sync: uses erlang.call('_py_sleep') callback with receive/after,
truly releasing the dirty scheduler for cooperative yielding
Remove unused _erlang_sleep NIF which only released the GIL but blocked
the pthread. The callback approach properly suspends the Erlang process.
Changes:
- Add sleep() to _erlang_impl and export to erlang module
- Add _py_sleep callback in py_event_loop.erl
- Remove py_erlang_sleep NIF and dispatch_sleep_complete
- Remove sync_sleep fields from event loop struct
- Remove sleep handlers from py_event_worker
- Update tests to use erlang.sleep()
* Document that erlang.sleep() releases dirty scheduler
Update docstring and asyncio.md to clarify:
- Both sync and async modes release the dirty NIF scheduler
- Async: yields to event loop via asyncio.sleep()/call_later()
- Sync: suspends Erlang process via receive/after callback
Also fix outdated architecture diagram that referenced removed
sleep_wait/dispatch_sleep_complete NIF.1 parent 5ce4df0 commit 50c97f2
File tree
11 files changed
+292
-243
lines changed- c_src
- docs
- priv
- _erlang_impl
- tests
- src
- test
11 files changed
+292
-243
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2409 | 2409 | | |
2410 | 2410 | | |
2411 | 2411 | | |
| 2412 | + | |
2412 | 2413 | | |
2413 | 2414 | | |
2414 | 2415 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
365 | 365 | | |
366 | 366 | | |
367 | 367 | | |
368 | | - | |
| 368 | + | |
369 | 369 | | |
370 | 370 | | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | 371 | | |
375 | 372 | | |
376 | 373 | | |
| |||
395 | 392 | | |
396 | 393 | | |
397 | 394 | | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | 395 | | |
402 | 396 | | |
403 | 397 | | |
| |||
619 | 613 | | |
620 | 614 | | |
621 | 615 | | |
622 | | - | |
623 | | - | |
624 | | - | |
625 | | - | |
626 | | - | |
627 | | - | |
628 | | - | |
629 | | - | |
630 | | - | |
631 | | - | |
632 | 616 | | |
633 | 617 | | |
634 | | - | |
635 | 618 | | |
636 | 619 | | |
637 | 620 | | |
| |||
1325 | 1308 | | |
1326 | 1309 | | |
1327 | 1310 | | |
1328 | | - | |
1329 | | - | |
1330 | | - | |
1331 | | - | |
1332 | | - | |
1333 | | - | |
1334 | | - | |
1335 | | - | |
1336 | | - | |
1337 | | - | |
1338 | | - | |
1339 | | - | |
1340 | | - | |
1341 | | - | |
1342 | | - | |
1343 | | - | |
1344 | | - | |
1345 | | - | |
1346 | | - | |
1347 | | - | |
1348 | | - | |
1349 | | - | |
1350 | | - | |
1351 | | - | |
1352 | | - | |
1353 | | - | |
1354 | | - | |
1355 | | - | |
1356 | | - | |
1357 | | - | |
1358 | | - | |
1359 | | - | |
1360 | 1311 | | |
1361 | 1312 | | |
1362 | 1313 | | |
| |||
5151 | 5102 | | |
5152 | 5103 | | |
5153 | 5104 | | |
5154 | | - | |
5155 | | - | |
5156 | | - | |
5157 | | - | |
5158 | | - | |
5159 | | - | |
5160 | | - | |
5161 | | - | |
5162 | | - | |
5163 | | - | |
5164 | | - | |
5165 | | - | |
5166 | | - | |
5167 | | - | |
5168 | | - | |
5169 | | - | |
5170 | | - | |
5171 | | - | |
5172 | | - | |
5173 | | - | |
5174 | | - | |
5175 | | - | |
5176 | | - | |
5177 | | - | |
5178 | | - | |
5179 | | - | |
5180 | | - | |
5181 | | - | |
5182 | | - | |
5183 | | - | |
5184 | | - | |
5185 | | - | |
5186 | | - | |
5187 | | - | |
5188 | | - | |
5189 | | - | |
5190 | | - | |
5191 | | - | |
5192 | | - | |
5193 | | - | |
5194 | | - | |
5195 | | - | |
5196 | | - | |
5197 | | - | |
5198 | | - | |
5199 | | - | |
5200 | | - | |
5201 | | - | |
5202 | | - | |
5203 | | - | |
5204 | | - | |
5205 | | - | |
5206 | | - | |
5207 | | - | |
5208 | | - | |
5209 | | - | |
5210 | | - | |
5211 | | - | |
5212 | | - | |
5213 | | - | |
5214 | | - | |
5215 | | - | |
5216 | | - | |
5217 | | - | |
5218 | | - | |
5219 | | - | |
5220 | | - | |
5221 | | - | |
5222 | | - | |
5223 | | - | |
5224 | | - | |
5225 | | - | |
5226 | | - | |
5227 | | - | |
5228 | | - | |
5229 | | - | |
5230 | | - | |
5231 | | - | |
5232 | | - | |
5233 | | - | |
5234 | | - | |
5235 | | - | |
5236 | | - | |
5237 | | - | |
5238 | | - | |
5239 | | - | |
5240 | | - | |
5241 | | - | |
5242 | | - | |
5243 | | - | |
5244 | | - | |
5245 | | - | |
5246 | | - | |
5247 | | - | |
5248 | | - | |
5249 | | - | |
5250 | 5105 | | |
5251 | 5106 | | |
5252 | 5107 | | |
| |||
5282 | 5137 | | |
5283 | 5138 | | |
5284 | 5139 | | |
5285 | | - | |
5286 | | - | |
5287 | 5140 | | |
5288 | 5141 | | |
5289 | 5142 | | |
| |||
5382 | 5235 | | |
5383 | 5236 | | |
5384 | 5237 | | |
5385 | | - | |
5386 | | - | |
5387 | | - | |
5388 | | - | |
5389 | | - | |
5390 | | - | |
5391 | | - | |
5392 | | - | |
5393 | | - | |
5394 | | - | |
5395 | 5238 | | |
5396 | 5239 | | |
5397 | | - | |
5398 | 5240 | | |
5399 | 5241 | | |
5400 | 5242 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
246 | 246 | | |
247 | 247 | | |
248 | 248 | | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | 249 | | |
264 | 250 | | |
265 | 251 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3856 | 3856 | | |
3857 | 3857 | | |
3858 | 3858 | | |
3859 | | - | |
3860 | 3859 | | |
3861 | 3860 | | |
3862 | 3861 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
58 | | - | |
59 | | - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| |||
632 | 632 | | |
633 | 633 | | |
634 | 634 | | |
635 | | - | |
| 635 | + | |
636 | 636 | | |
637 | 637 | | |
638 | 638 | | |
639 | 639 | | |
640 | 640 | | |
641 | 641 | | |
642 | 642 | | |
643 | | - | |
644 | | - | |
645 | | - | |
646 | | - | |
647 | | - | |
648 | | - | |
649 | | - | |
650 | | - | |
651 | | - | |
652 | | - | |
653 | | - | |
654 | | - | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
655 | 656 | | |
656 | 657 | | |
657 | 658 | | |
658 | 659 | | |
659 | | - | |
660 | | - | |
| 660 | + | |
| 661 | + | |
661 | 662 | | |
662 | 663 | | |
663 | 664 | | |
664 | 665 | | |
665 | 666 | | |
666 | 667 | | |
667 | | - | |
| 668 | + | |
668 | 669 | | |
669 | | - | |
| 670 | + | |
670 | 671 | | |
671 | 672 | | |
672 | 673 | | |
| |||
688 | 689 | | |
689 | 690 | | |
690 | 691 | | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
691 | 719 | | |
692 | 720 | | |
693 | 721 | | |
| |||
0 commit comments