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 /src | |
parent | b5ed21998c13f09fd733c87a224e3fe27e41d34d (diff) | |
download | postgresql-f489470f8abee19ec0788afad92cf192c132271e.tar.gz postgresql-f489470f8abee19ec0788afad92cf192c132271e.zip |
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.
Diffstat (limited to 'src')
-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; |