Can you put that in the new pthread file that needs to be added for Win32?

---------------------------------------------------------------------------

Manfred Spraul wrote:
> Andreas Pflug wrote:
> 
> > Bruce Momjian wrote:
> >
> >>
> >>
> >> Agreed.  My pthread book says pthread_mutex_init() should be called only
> >> once, and we have to guarantee that.  If the Windows implentation allows
> >> it to be called multiple times, just create a function to be called only
> >> by Win32 that does that and leave the Unix safe.
> >>
> >>  
> >>
> > Ok, so here's the win32 workaround with the unix stuff left untouched.
> > There's no memory interlocking api in win32 that wouldn't need some 
> > initializing api call itself, so we'd have to go for assembly level 
> > test-and-set code.
> 
> Wrong. There are portable test-and-set functions in the Win32 SDK: for 
> example InterlockedCompareExchange. They operate on ints and do not need 
> initialization.
> 
> > or introduce a mandatory global libpq initializing api.
> 
> There is a third option: Add one C++ file and use the constructor to 
> initialize the mutex. VisualC is always a C++ compiler, thus C++ support 
> shouldn't be an issue. I've attached an example app.
> 
> > Considering the probably quite low usage of kerberos/ssl together with 
> > threads under win32, and the very low probability of two 
> > threads/processors (!) trying to initiate a connection at the same 
> > time, it doesn't seem to be worth the compiler hassle with assembly 
> > inline.
> >
> This argument is insane: Given enough installations, even a very low 
> probability will cause failures.
> 
> But this is a minor point, I think the patch should go in and I'll write 
> with a proposal to close the race, either based on 
> InterlockedCompareExchange or on a C++ file.
> 
> --
>     Manfred


-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to