| From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> | 
|---|---|
| To: | Larry Rosenman <ler(at)lerctr(dot)org> | 
| Cc: | Peter Eisentraut <peter_e(at)gmx(dot)net>, Lee Kindness <lkindness(at)csl(dot)co(dot)uk>, "Marc G(dot) Fournier" <scrappy(at)hub(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>, PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Unixware Patch (Was: Re: Beta2 Tag'd and Bundled ...) | 
| Date: | 2003-09-02 15:35:25 | 
| Message-ID: | 200309021535.h82FZPP13566@candle.pha.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Larry Rosenman wrote:
> 
> 
> --On Tuesday, September 02, 2003 11:20:14 -0400 Bruce Momjian 
> <pgman(at)candle(dot)pha(dot)pa(dot)us> wrote:
> 
> > Peter Eisentraut wrote:
> >> Lee Kindness writes:
> >>
> >> > You don't... and you simply shouldn't care. If there is a_r version
> >> > available then we should use it - even if the plain version is "safe".
> >>
> >> The problem with this is that the automatic determination (in configure)
> >> whether there is a xxx_r()  version is, in general, fragile.  We cannot
> >> rely on configure saying that xxx_r() doesn't exist, so the plain xxx()
> >> should be good enough.  Else, we'd be shipping claimed-to-be-thread-safe
> >> libraries that might trigger bugs that will be hard to track down.
> >>
> >> I don't see any other solution than keeping a database of NEED_XXX_R for
> >> each platform and then requiring these functions to show up before we
> >> declare a library to be thread-safe.  So far we're only dealing with
> >> three functions, to it should be doable.
> >
> > Right.  We can't assume because a *_r function is missing that the
> > normal function is thread-safe.
> So, given that UnixWare doesn't have gethostbyname_r and strerror_r, but 
> does have
> getpwuid_r, will y'all declare that UnixWare has thread-safety?
> 
> My vote is YES.
I am inclined to think yes.  It would prevent uglification of the code
by not having to special-case Unixware.
However, I was able to read the libc sources to confirm thread-safety. 
Because you can not see the source, would you try a threaded program and
see if calls to getpwuid from different threads return different
pointer values?
-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Larry Rosenman | 2003-09-02 15:37:45 | Re: Unixware Patch (Was: Re: Beta2 Tag'd and Bundled ...) | 
| Previous Message | Larry Rosenman | 2003-09-02 15:34:51 | Re: Unixware Patch (Was: Re: Beta2 Tag'd and Bundled ...) |