Re: [pgsql-hackers-win32] Win32 lost signals open item
От | Magnus Hagander |
---|---|
Тема | Re: [pgsql-hackers-win32] Win32 lost signals open item |
Дата | |
Msg-id | 6BCB9D8A16AC4241919521715F4D8BCE476079@algol.sollentuna.se обсуждение исходный текст |
Ответы |
Re: [pgsql-hackers-win32] Win32 lost signals open item
|
Список | pgsql-hackers |
>> Basically, I think internal_forkexec() needs to be split up >into two - >> one win32 and one other. For win32 version, it needs to >CreateProcess() >> *before* it does write_backend_variables(), and then pass >the process id >> as a parameter to write_backend_vars(). > >Huh? Why? Because we need to write the duplicated socket structure/pipe handle to the parameter file. I guess we could create a separate parameter file just for these things, but that seemed a bit unnecessary. Basically: 1) To create the new HANDLE, or in the case of a socket, the WSAPROTOCOL_INFO structure, we need to know the new pid. We can only know this after CreateProcess(), which sits in win32_forkexec. 2) To get the data down to the backend, we need to put it in the parameter file, which is done using write_backend_vars(). This gives that we either: 1) Write the data out in write_backend_vars, in which case write_backend_vars needs to know the pid of the new backend. or 2) Write the data out in win32_forkexec, in which case we need another parameter file. I was thinking (1) was the cleaner approach. //Magnus
В списке pgsql-hackers по дате отправления: