--On Thursday, July 24, 2003 17:21:17 +0200 Peter Eisentraut <[EMAIL PROTECTED]> wrote:

Bruce Momjian writes:

Now I see what you are saying, that _REENTRANT just makes it reentrant,

_REENTRANT only makes additional functions visible in the header files, it doesn't change any functions to behave differently. (This is not hard to imagine, because the lack of reentrancy of most functions lies in the public interface, and you can't change that transparently.)

I beg to differ. Explicitly, on UnixWare, the <errno.h> header, reproduced below, under
fair use, show an EXPLICIT difference in what happens with _REENTRANT:
$ cat /usr/include/errno.h
/*
* Copyright (c) 2002 Caldera International, Inc. All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF
* Caldera International, Inc.
*
* The copyright notice above does not evidence any actual or intended
* publication of such source code.
*/


#ifndef _ERRNO_H
#define _ERRNO_H
#ident  "@(#)unixsrc:usr/src/common/head/errno.h /main/uw7_nj/2"

#include <sys/errno.h>

#ifdef _REENTRANT

#ifdef __cplusplus
extern "C" {
#endif

extern int *__thr_errno(void);

#ifdef __cplusplus
}
#endif

#define errno (*__thr_errno())

#else /*!_REENTRANT*/

extern int errno;

#ifdef __cplusplus /* C++ requires that this be a macro! */
#define errno   errno
#endif

#endif /*_REENTRANT*/

#endif /*_ERRNO_H*/
$


-- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 972-414-9812 E-Mail: [EMAIL PROTECTED] US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to