Commit 3b4cd1a
Release Python GIL during I/O operations in bindings (AcademySoftwareFoundation#2273)
Release the GIL around OpenEXR read/write operations to allow other
Python threads to run during file I/O. This prevents the bindings
from blocking the entire Python interpreter during potentially
lengthy operations.
Operations wrapped with gil_scoped_release:
- readPixels, readTiles, readPixelSampleCounts
- writePixels, writeTiles, writeTile
- copyPixels
Also adds a test to verify the GIL is released during I/O.
Signed-off-by: Cary Phillips <cary@ilm.com>
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent 5667a27 commit 3b4cd1a
3 files changed
Lines changed: 123 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
340 | 340 | | |
341 | 341 | | |
342 | 342 | | |
343 | | - | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
344 | 347 | | |
345 | 348 | | |
346 | 349 | | |
| |||
583 | 586 | | |
584 | 587 | | |
585 | 588 | | |
586 | | - | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
587 | 593 | | |
588 | 594 | | |
589 | 595 | | |
590 | | - | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
591 | 600 | | |
592 | 601 | | |
593 | 602 | | |
| |||
597 | 606 | | |
598 | 607 | | |
599 | 608 | | |
600 | | - | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
601 | 613 | | |
602 | 614 | | |
603 | 615 | | |
604 | | - | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
605 | 620 | | |
606 | 621 | | |
607 | 622 | | |
| |||
686 | 701 | | |
687 | 702 | | |
688 | 703 | | |
689 | | - | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
690 | 708 | | |
691 | 709 | | |
692 | 710 | | |
693 | 711 | | |
694 | 712 | | |
695 | | - | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
696 | 717 | | |
697 | 718 | | |
698 | 719 | | |
| |||
881 | 902 | | |
882 | 903 | | |
883 | 904 | | |
884 | | - | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
885 | 909 | | |
886 | 910 | | |
887 | 911 | | |
888 | 912 | | |
889 | 913 | | |
890 | 914 | | |
891 | | - | |
892 | | - | |
893 | | - | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
894 | 921 | | |
895 | 922 | | |
896 | 923 | | |
| |||
1181 | 1208 | | |
1182 | 1209 | | |
1183 | 1210 | | |
1184 | | - | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
1185 | 1215 | | |
1186 | 1216 | | |
1187 | 1217 | | |
1188 | 1218 | | |
1189 | 1219 | | |
1190 | | - | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
1191 | 1224 | | |
1192 | 1225 | | |
1193 | 1226 | | |
1194 | 1227 | | |
1195 | 1228 | | |
1196 | | - | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
1197 | 1233 | | |
1198 | 1234 | | |
1199 | 1235 | | |
1200 | 1236 | | |
1201 | 1237 | | |
1202 | | - | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
1203 | 1242 | | |
1204 | 1243 | | |
1205 | 1244 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
662 | 662 | | |
663 | 663 | | |
664 | 664 | | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 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 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
665 | 733 | | |
666 | 734 | | |
0 commit comments