shmem_startup_hook
共享内存初始化
在核心共享内存完成初始化后初始化扩展状态。
当前查看 PostgreSQL 18。
说明
服务器建立共享内存并完成核心结构初始化后调用此钩子。预加载扩展可在这里创建或连接自己的共享内存结构;这与分配前申报空间需求的阶段不同。
- 接口类型
- shmem_startup_hook_type
- 声明头文件
- src/include/storage/ipc.h
- 调用阶段
- 启动与共享内存
- 初始值
- NULL(未安装钩子)
接口签名
typedef void (*shmem_startup_hook_type) (void);
extern PGDLLIMPORT shmem_startup_hook_type shmem_startup_hook;共享状态的并发保护
多个后端连接同一共享结构时必须按该结构的设计使用合适的锁,并检查 ShmemInitStruct 返回的 found 标志,避免把已存在的共享状态重新初始化。
调用位置
src/backend/storage/ipc/ipci.c:191
src/backend/storage/ipc/ipci.c:249
相关条目
文档与源码
查看来源构建
- 版本
- 18
- 构建
- REL_18_STABLE
- 来源指纹
753057e340da8f22e57c9a409ea7a235fd6a46bd
同类条目
shmem_request_hook共享内存需求申报
返回扩展钩子 · 此条目的收录范围为 PostgreSQL 10 至 20;起点不一定是实际引入版本。