mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	Add CHECK_FOR_INTERRUPTS in contrib/pg_buffercache functions.
This commit adds CHECK_FOR_INTERRUPTS to loops iterating over shared buffers in several pg_buffercache functions, allowing them to be interrupted during long-running operations. Backpatch to all supported versions. Add CHECK_FOR_INTERRUPTS to the loop in pg_buffercache_pages() in all supported branches, and to pg_buffercache_summary() and pg_buffercache_usage_counts() in version 16 and newer. Author: SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com> Discussion: https://postgr.es/m/CAHg+QDcejeLx7WunFT3DX6XKh1KshvGKa8F5au8xVhqVvvQPRw@mail.gmail.com Backpatch-through: 13
This commit is contained in:
		| @@ -11,6 +11,7 @@ | ||||
| #include "access/htup_details.h" | ||||
| #include "catalog/pg_type.h" | ||||
| #include "funcapi.h" | ||||
| #include "miscadmin.h" | ||||
| #include "storage/buf_internals.h" | ||||
| #include "storage/bufmgr.h" | ||||
|  | ||||
| @@ -148,6 +149,8 @@ pg_buffercache_pages(PG_FUNCTION_ARGS) | ||||
| 			BufferDesc *bufHdr; | ||||
| 			uint32		buf_state; | ||||
|  | ||||
| 			CHECK_FOR_INTERRUPTS(); | ||||
|  | ||||
| 			bufHdr = GetBufferDescriptor(i); | ||||
| 			/* Lock each buffer header before inspecting. */ | ||||
| 			buf_state = LockBufHdr(bufHdr); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user