Commit b6a97b9
committed
Block interrupts during HandleParallelMessages().
As noted by Alvaro, there are CHECK_FOR_INTERRUPTS() calls in the shm_mq.c
functions called by HandleParallelMessages(). I believe they're all
unreachable since we always pass nowait = true, but it doesn't seem like
a great idea to assume that no such call will ever be reachable from
HandleParallelMessages(). If that did happen, there would be a risk of a
recursive call to HandleParallelMessages(), which it does not appear to be
designed for --- for example, there's nothing that would prevent
out-of-order processing of received messages. And certainly such cases
cannot easily be tested. So let's prevent it by holding off interrupts for
the duration of the function. Back-patch to 9.5 which contains identical
code.
Discussion: <14869.1470083848@sss.pgh.pa.us>1 parent c4d3a03 commit b6a97b9
1 file changed
+16
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
704 | 704 | | |
705 | 705 | | |
706 | 706 | | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
707 | 716 | | |
708 | 717 | | |
709 | 718 | | |
710 | 719 | | |
711 | 720 | | |
712 | 721 | | |
713 | | - | |
714 | | - | |
715 | 722 | | |
716 | 723 | | |
717 | 724 | | |
| |||
721 | 728 | | |
722 | 729 | | |
723 | 730 | | |
724 | | - | |
725 | | - | |
726 | | - | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
727 | 734 | | |
728 | 735 | | |
729 | 736 | | |
730 | 737 | | |
| 738 | + | |
| 739 | + | |
731 | 740 | | |
732 | 741 | | |
733 | 742 | | |
| |||
749 | 758 | | |
750 | 759 | | |
751 | 760 | | |
| 761 | + | |
| 762 | + | |
752 | 763 | | |
753 | 764 | | |
754 | 765 | | |
| |||
0 commit comments