Re: Isn't HANDLE 64 bits on Win64?
От | Magnus Hagander |
---|---|
Тема | Re: Isn't HANDLE 64 bits on Win64? |
Дата | |
Msg-id | AANLkTi=NPR60N3X8XNZ-fTd79pn0PHRJXi3YZpnjRnV0@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Isn't HANDLE 64 bits on Win64? (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Isn't HANDLE 64 bits on Win64?
|
Список | pgsql-hackers |
On Tue, Nov 16, 2010 at 15:42, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Magnus Hagander <magnus@hagander.net> writes: >> On Tue, Nov 16, 2010 at 11:01, Magnus Hagander <magnus@hagander.net> wrote: >>> So yes, it looks completely broken. I guess Windows doesn't actually >>> *assign* you a handle larger than 2^32 until you actually ahve that >>> many open handles. Typical values on my test system (win64) comes out >>> at around 4000 in all tests. > >> Patch applied for this and backpatched to 9.0. > > I did a bit of googling and found some references claiming that Win64 > will never assign system handles that are outside the range > representable as a signed long; and further stating there are standard > macros HandleToLong and LongToHandle to perform those conversions. > So I'd be comfortable with the original coding as long as we used those > macros instead of random casting. Dunno if you think that'd be cleaner > than what you did. (It's also a fair question whether those macros > are available on Win32.) The one I found was: http://msdn.microsoft.com/en-us/library/aa384242(VS.85).aspx Which only talks about pointers, though - but handles are pointers, in theory. Do you still have a reference to the page that said they will never be assigned that high? I can't even find the proper documentation for those macros. I in the headers it looks like they'll be on Win32 - whether they're in *mingw* is a different issue altogether of course. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
В списке pgsql-hackers по дате отправления: