Re: Isn't HANDLE 64 bits on Win64?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org, Dave Page <dpage(at)pgadmin(dot)org>
Subject: Re: Isn't HANDLE 64 bits on Win64?
Date: 2010-11-16 14:42:41
Message-ID: 27296.1289918561@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Magnus Hagander <magnus(at)hagander(dot)net> writes:
> On Tue, Nov 16, 2010 at 11:01, Magnus Hagander <magnus(at)hagander(dot)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.)

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2010-11-16 14:45:12 Re: Isn't HANDLE 64 bits on Win64?
Previous Message Greg Sabino Mullane 2010-11-16 14:41:38 GCC vs clang