Magnus Hagander wrote:
> >>> The only place WSACleanup is being called is libpqdll when 
> >the process
> >>> detaches the DLL (if the libpq is not staticly linked in), 
> >which matches up
> >>> with the WSAStartup when the process attaches to the DLL.
> >>> 
> >>> The WSAStartup in the fe-connect.c->makeEmptyPGconn() does 
> >not have a
> >>> matching WSACleanup.  WSACleanup could possibly be placed 
> >in freePGconn(),
> >>> but unsure if all possible error cases will go through this 
> >function.
> >>> 
> >>> This problem exists in both 8.0.1 and 7.4.7 of the libpq 
> >interface for
> >>> Windows.
> >
> >> I agree freePGconn() is the proper place.  I will apply the following
> >> patch to current CVS and to 8.0.X.  8.0.3 is being packaged now so I
> >> will wait for 8.0.4.
> >
> >Actually ... why do we need a WSAStartup in makeEmptyPGconn?  
> >If we have
> >one in DLL attach, isn't that sufficient?
> 
> Not if you link libpq as a static lib...
> 
> I *think* that's why it was added. In the beginning it was only in the
> DLL attach code, and if you were using the library as a static lib you
> had to call it yourself. Not sure when that changed, but clearly that is
> when the WSACleanup() call should've gone in.
> 

OK, good.  I will document that and have the fix in 8.0.4.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (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 8: explain analyze is your friend

Reply via email to