Re: FATAL: could not reattach to shared memory (Win32)
От | Tom Lane |
---|---|
Тема | Re: FATAL: could not reattach to shared memory (Win32) |
Дата | |
Msg-id | 1462.1187971009@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: FATAL: could not reattach to shared memory (Win32) (Gregory Stark <stark@enterprisedb.com>) |
Ответы |
Re: FATAL: could not reattach to shared memory (Win32)
Re: FATAL: could not reattach to shared memory (Win32) Re: FATAL: could not reattach to shared memory (Win32) |
Список | pgsql-general |
Gregory Stark <stark@enterprisedb.com> writes: > "Trevor Talbot" <quension@gmail.com> writes: >> I gather postgres depends on it being at the same address, and fixing that >> isn't trivial? > I haven't been following the rest of the thread so I'm not sure if this is > important. But no, fixing that should be relatively trivial as there are > already some configurations where it's not the case (the EXEC_BACKEND case I > believe). The rest of the system uses a shared memory base pointer and > references everything relative to that. That hasn't been the case for quite a few years, and we're not going back. The pointer-to-offset-and-back gymnastics that that required were utterly destructive to code readability and maintainability, mainly because if everything stored in shmem data structures is an "offset" then you can't get any useful error checking from the compiler about how you are using the fields. It's like decreeing that every pointer must be declared "void *" and cast to something else when it's used. There are a few old bits of code that still use MAKE_PTR/MAKE_OFFSET, but I think it's mostly just that no one's bothered to rewrite the code for SHM_QUEUE linked lists. The vast majority of our shmem structures use regular pointers, and have for years. regards, tom lane
В списке pgsql-general по дате отправления: