forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit001a573
committed
Allow on-detach callbacks for dynamic shared memory segments.
Just as backends must clean up their shared memory state (releasinglwlocks, buffer pins, etc.) before exiting, they must also performany similar cleanups related to dynamic shared memory segments theyhave mapped before unmapping those segments. So add a mechanism toensure that.Existing on_shmem_exit hooks include both "user level" cleanup suchas transaction abort and removal of leftover temporary relations andalso "low level" cleanup that forcibly released leftover sharedmemory resources. On-detach callbacks should run after the firstgroup but before the second group, so create a new before_shmem_exitfunction for registering the early callbacks and keep on_shmem_exitfor the regular callbacks. (An earlier draft of this patch added anadditional argument to on_shmem_exit, but that had a much largerfootprint and probably a substantially higher risk of breaking thirdparty code for no real gain.)Patch by me, reviewed by KaiGai Kohei and Andres Freund.1 parent613c6d2 commit001a573
File tree
8 files changed
+192
-46
lines changed- src
- backend
- bootstrap
- catalog
- commands
- storage/ipc
- utils/init
- include/storage
8 files changed
+192
-46
lines changedLines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
402 | 402 |
| |
403 | 403 |
| |
404 | 404 |
| |
405 |
| - | |
406 |
| - | |
| 405 | + | |
| 406 | + | |
407 | 407 |
| |
408 | 408 |
| |
409 | 409 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3681 | 3681 |
| |
3682 | 3682 |
| |
3683 | 3683 |
| |
3684 |
| - | |
| 3684 | + | |
3685 | 3685 |
| |
3686 | 3686 |
| |
3687 | 3687 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
921 | 921 |
| |
922 | 922 |
| |
923 | 923 |
| |
924 |
| - | |
| 924 | + | |
925 | 925 |
| |
926 | 926 |
| |
927 | 927 |
| |
|
Lines changed: 72 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
58 | 58 |
| |
59 | 59 |
| |
60 | 60 |
| |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
61 | 69 |
| |
62 | 70 |
| |
63 | 71 |
| |
| |||
68 | 76 |
| |
69 | 77 |
| |
70 | 78 |
| |
| 79 | + | |
71 | 80 |
| |
72 | 81 |
| |
73 | 82 |
| |
| |||
91 | 100 |
| |
92 | 101 |
| |
93 | 102 |
| |
94 |
| - | |
95 | 103 |
| |
96 | 104 |
| |
97 | 105 |
| |
| |||
556 | 564 |
| |
557 | 565 |
| |
558 | 566 |
| |
559 |
| - | |
560 |
| - | |
561 |
| - | |
562 | 567 |
| |
563 | 568 |
| |
564 | 569 |
| |
| |||
718 | 723 |
| |
719 | 724 |
| |
720 | 725 |
| |
721 |
| - | |
722 |
| - | |
| 726 | + | |
| 727 | + | |
723 | 728 |
| |
724 | 729 |
| |
725 | 730 |
| |
| |||
774 | 779 |
| |
775 | 780 |
| |
776 | 781 |
| |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
777 | 803 |
| |
778 | 804 |
| |
779 | 805 |
| |
| |||
915 | 941 |
| |
916 | 942 |
| |
917 | 943 |
| |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
918 | 982 |
| |
919 | 983 |
| |
920 | 984 |
| |
| |||
937 | 1001 |
| |
938 | 1002 |
| |
939 | 1003 |
| |
| 1004 | + | |
| 1005 | + | |
940 | 1006 |
| |
941 | 1007 |
| |
942 | 1008 |
| |
|
Lines changed: 95 additions & 23 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
27 | 27 |
| |
28 | 28 |
| |
29 | 29 |
| |
| 30 | + | |
30 | 31 |
| |
31 | 32 |
| |
32 | 33 |
| |
| |||
64 | 65 |
| |
65 | 66 |
| |
66 | 67 |
| |
67 |
| - | |
| 68 | + | |
68 | 69 |
| |
69 | 70 |
| |
70 | 71 |
| |
71 |
| - | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
72 | 77 |
| |
73 | 78 |
| |
74 |
| - | |
| 79 | + | |
| 80 | + | |
75 | 81 |
| |
76 | 82 |
| |
77 | 83 |
| |
| |||
202 | 208 |
| |
203 | 209 |
| |
204 | 210 |
| |
205 |
| - | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
206 | 214 |
| |
207 | 215 |
| |
208 | 216 |
| |
209 | 217 |
| |
210 | 218 |
| |
211 |
| - | |
212 |
| - | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
213 | 233 |
| |
214 | 234 |
| |
215 |
| - | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
216 | 254 |
| |
217 |
| - | |
218 |
| - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
219 | 259 |
| |
| 260 | + | |
| 261 | + | |
220 | 262 |
| |
221 | 263 |
| |
222 |
| - | |
223 |
| - | |
| 264 | + | |
224 | 265 |
| |
225 | 266 |
| |
226 | 267 |
| |
| |||
269 | 310 |
| |
270 | 311 |
| |
271 | 312 |
| |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
272 | 341 |
| |
273 | 342 |
| |
274 | 343 |
| |
275 |
| - | |
276 |
| - | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
277 | 347 |
| |
278 | 348 |
| |
279 | 349 |
| |
| |||
297 | 367 |
| |
298 | 368 |
| |
299 | 369 |
| |
300 |
| - | |
| 370 | + | |
301 | 371 |
| |
302 |
| - | |
303 |
| - | |
304 |
| - | |
305 |
| - | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
306 | 376 |
| |
307 | 377 |
| |
308 | 378 |
| |
309 |
| - | |
| 379 | + | |
310 | 380 |
| |
311 |
| - | |
312 |
| - | |
313 |
| - | |
314 |
| - | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
315 | 386 |
| |
316 | 387 |
| |
317 | 388 |
| |
| |||
326 | 397 |
| |
327 | 398 |
| |
328 | 399 |
| |
| 400 | + | |
329 | 401 |
| |
330 | 402 |
| |
331 | 403 |
|
Lines changed: 7 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
587 | 587 |
| |
588 | 588 |
| |
589 | 589 |
| |
590 |
| - | |
591 |
| - | |
592 |
| - | |
593 |
| - | |
594 |
| - | |
595 |
| - | |
596 |
| - | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
597 | 596 |
| |
598 |
| - | |
| 597 | + | |
599 | 598 |
| |
600 | 599 |
| |
601 | 600 |
| |
|
Lines changed: 9 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
17 | 17 |
| |
18 | 18 |
| |
19 | 19 |
| |
20 |
| - | |
| 20 | + | |
21 | 21 |
| |
| 22 | + | |
22 | 23 |
| |
23 | 24 |
| |
24 | 25 |
| |
| |||
36 | 37 |
| |
37 | 38 |
| |
38 | 39 |
| |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
39 | 47 |
|
0 commit comments
Comments
(0)