diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-07-08 17:28:48 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-07-08 17:28:48 +0300 |
commit | f489470f8abee19ec0788afad92cf192c132271e (patch) | |
tree | 4bfd8ce81bbdc36a6731d9954588a92399b24a87 | |
parent | b5ed21998c13f09fd733c87a224e3fe27e41d34d (diff) |
Fix Windows build.
Was broken by my xloginsert scaling patch. XLogCtl global variable needs
to be initialized in each process, as it's not inherited by fork() on
Windows.
-rw-r--r-- | src/backend/access/transam/xlog.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index acf0dd18761..c9e3a7af7b3 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -5074,7 +5074,8 @@ XLOGShmemInit(void) ControlFile = (ControlFileData *) ShmemInitStruct("Control File", sizeof(ControlFileData), &foundCFile); - allocptr = ShmemInitStruct("XLOG Ctl", XLOGShmemSize(), &foundXLog); + XLogCtl = (XLogCtlData *) + ShmemInitStruct("XLOG Ctl", XLOGShmemSize(), &foundXLog); if (foundCFile || foundXLog) { @@ -5082,7 +5083,6 @@ XLOGShmemInit(void) Assert(foundCFile && foundXLog); return; } - XLogCtl = (XLogCtlData *) allocptr; memset(XLogCtl, 0, sizeof(XLogCtlData)); /* @@ -5090,7 +5090,7 @@ XLOGShmemInit(void) * multiple of the alignment for same, so no extra alignment padding is * needed here. */ - allocptr += sizeof(XLogCtlData); + allocptr = ((char *) XLogCtl) + sizeof(XLogCtlData); XLogCtl->xlblocks = (XLogRecPtr *) allocptr; memset(XLogCtl->xlblocks, 0, sizeof(XLogRecPtr) * XLOGbuffers); allocptr += sizeof(XLogRecPtr) * XLOGbuffers; |