This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
in B::Concise, show RV target better
[perl5.git]
/
reentr.c
diff --git
a/reentr.c
b/reentr.c
index
a5ea192
..
166777e
100644
(file)
--- a/
reentr.c
+++ b/
reentr.c
@@
-10,10
+10,16
@@
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
* This file is built by regen/reentr.pl from data in regen/reentr.pl.
* Any changes made here will be lost!
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
* This file is built by regen/reentr.pl from data in regen/reentr.pl.
* Any changes made here will be lost!
- *
+ */
+
+/*
* "Saruman," I said, standing away from him, "only one hand at a time can
* wield the One, and you know that well, so do not trouble to say we!"
*
* "Saruman," I said, standing away from him, "only one hand at a time can
* wield the One, and you know that well, so do not trouble to say we!"
*
+ * [p.260 of _The Lord of the Rings_, II/ii: "The Council of Elrond"]
+ */
+
+/*
* This file contains a collection of automatically created wrappers
* (created by running reentr.pl) for reentrant (thread-safe) versions of
* various library calls, such as getpwent_r. The wrapping is done so
* This file contains a collection of automatically created wrappers
* (created by running reentr.pl) for reentrant (thread-safe) versions of
* various library calls, such as getpwent_r. The wrapping is done so
@@
-27,8
+33,16
@@
#include "perl.h"
#include "reentr.h"
#include "perl.h"
#include "reentr.h"
+#define RenewDouble(data_pointer, size_pointer, type) \
+ STMT_START { \
+ const size_t size = *(size_pointer) * 2; \
+ Renew((data_pointer), (size), type); \
+ *(size_pointer) = size; \
+ } STMT_END
+
void
Perl_reentrant_size(pTHX) {
void
Perl_reentrant_size(pTHX) {
+ PERL_UNUSED_CONTEXT;
#ifdef USE_REENTRANT_API
#define REENTRANTSMALLSIZE 256 /* Make something up. */
#define REENTRANTUSUALSIZE 4096 /* Make something up. */
#ifdef USE_REENTRANT_API
#define REENTRANTSMALLSIZE 256 /* Make something up. */
#define REENTRANTUSUALSIZE 4096 /* Make something up. */
@@
-45,16
+59,12
@@
Perl_reentrant_size(pTHX) {
PL_reentrant_buffer->_grent_size = sysconf(_SC_GETGR_R_SIZE_MAX);
if (PL_reentrant_buffer->_grent_size == (size_t) -1)
PL_reentrant_buffer->_grent_size = REENTRANTUSUALSIZE;
PL_reentrant_buffer->_grent_size = sysconf(_SC_GETGR_R_SIZE_MAX);
if (PL_reentrant_buffer->_grent_size == (size_t) -1)
PL_reentrant_buffer->_grent_size = REENTRANTUSUALSIZE;
-# else
-# if defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ)
+# elif defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ)
PL_reentrant_buffer->_grent_size = SIABUFSIZ;
PL_reentrant_buffer->_grent_size = SIABUFSIZ;
-# else
-# ifdef __sgi
+# elif defined(__sgi)
PL_reentrant_buffer->_grent_size = BUFSIZ;
PL_reentrant_buffer->_grent_size = BUFSIZ;
-#
else
+# else
PL_reentrant_buffer->_grent_size = REENTRANTUSUALSIZE;
PL_reentrant_buffer->_grent_size = REENTRANTUSUALSIZE;
-# endif
-# endif
# endif
#endif /* HAS_GETGRNAM_R */
#ifdef HAS_GETHOSTBYNAME_R
# endif
#endif /* HAS_GETGRNAM_R */
#ifdef HAS_GETHOSTBYNAME_R
@@
-80,16
+90,12
@@
Perl_reentrant_size(pTHX) {
PL_reentrant_buffer->_pwent_size = sysconf(_SC_GETPW_R_SIZE_MAX);
if (PL_reentrant_buffer->_pwent_size == (size_t) -1)
PL_reentrant_buffer->_pwent_size = REENTRANTUSUALSIZE;
PL_reentrant_buffer->_pwent_size = sysconf(_SC_GETPW_R_SIZE_MAX);
if (PL_reentrant_buffer->_pwent_size == (size_t) -1)
PL_reentrant_buffer->_pwent_size = REENTRANTUSUALSIZE;
-# else
-# if defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ)
+# elif defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ)
PL_reentrant_buffer->_pwent_size = SIABUFSIZ;
PL_reentrant_buffer->_pwent_size = SIABUFSIZ;
-# else
-# ifdef __sgi
+# elif defined(__sgi)
PL_reentrant_buffer->_pwent_size = BUFSIZ;
PL_reentrant_buffer->_pwent_size = BUFSIZ;
-#
else
+# else
PL_reentrant_buffer->_pwent_size = REENTRANTUSUALSIZE;
PL_reentrant_buffer->_pwent_size = REENTRANTUSUALSIZE;
-# endif
-# endif
# endif
#endif /* HAS_GETPWNAM_R */
#ifdef HAS_GETSERVBYNAME_R
# endif
#endif /* HAS_GETPWNAM_R */
#ifdef HAS_GETSERVBYNAME_R
@@
-102,16
+108,12
@@
Perl_reentrant_size(pTHX) {
PL_reentrant_buffer->_spent_size = sysconf(_SC_GETPW_R_SIZE_MAX);
if (PL_reentrant_buffer->_spent_size == (size_t) -1)
PL_reentrant_buffer->_spent_size = REENTRANTUSUALSIZE;
PL_reentrant_buffer->_spent_size = sysconf(_SC_GETPW_R_SIZE_MAX);
if (PL_reentrant_buffer->_spent_size == (size_t) -1)
PL_reentrant_buffer->_spent_size = REENTRANTUSUALSIZE;
-# else
-# if defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ)
+# elif defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ)
PL_reentrant_buffer->_spent_size = SIABUFSIZ;
PL_reentrant_buffer->_spent_size = SIABUFSIZ;
-# else
-# ifdef __sgi
+# elif defined(__sgi)
PL_reentrant_buffer->_spent_size = BUFSIZ;
PL_reentrant_buffer->_spent_size = BUFSIZ;
-#
else
+# else
PL_reentrant_buffer->_spent_size = REENTRANTUSUALSIZE;
PL_reentrant_buffer->_spent_size = REENTRANTUSUALSIZE;
-# endif
-# endif
# endif
#endif /* HAS_GETSPNAM_R */
#ifdef HAS_READDIR_R
# endif
#endif /* HAS_GETSPNAM_R */
#ifdef HAS_READDIR_R
@@
-139,6
+141,7
@@
Perl_reentrant_size(pTHX) {
void
Perl_reentrant_init(pTHX) {
void
Perl_reentrant_init(pTHX) {
+ PERL_UNUSED_CONTEXT;
#ifdef USE_REENTRANT_API
Newx(PL_reentrant_buffer, 1, REENTR);
Perl_reentrant_size(aTHX);
#ifdef USE_REENTRANT_API
Newx(PL_reentrant_buffer, 1, REENTR);
Perl_reentrant_size(aTHX);
@@
-215,6
+218,7
@@
Perl_reentrant_init(pTHX) {
void
Perl_reentrant_free(pTHX) {
void
Perl_reentrant_free(pTHX) {
+ PERL_UNUSED_CONTEXT;
#ifdef USE_REENTRANT_API
#ifdef HAS_ASCTIME_R
Safefree(PL_reentrant_buffer->_asctime_buffer);
#ifdef USE_REENTRANT_API
#ifdef HAS_ASCTIME_R
Safefree(PL_reentrant_buffer->_asctime_buffer);
@@
-317,9
+321,8
@@
Perl_reentrant_retry(const char *f, ...)
PERL_REENTRANT_MAXSIZE / 2)
#endif
{
PERL_REENTRANT_MAXSIZE / 2)
#endif
{
- PL_reentrant_buffer->_hostent_size *= 2;
- Renew(PL_reentrant_buffer->_hostent_buffer,
- PL_reentrant_buffer->_hostent_size, char);
+ RenewDouble(PL_reentrant_buffer->_hostent_buffer,
+ &PL_reentrant_buffer->_hostent_size, char);
switch (PL_op->op_type) {
case OP_GHBYADDR:
p0 = va_arg(ap, void *);
switch (PL_op->op_type) {
case OP_GHBYADDR:
p0 = va_arg(ap, void *);
@@
-350,9
+353,8
@@
Perl_reentrant_retry(const char *f, ...)
#endif
{
Gid_t gid;
#endif
{
Gid_t gid;
- PL_reentrant_buffer->_grent_size *= 2;
- Renew(PL_reentrant_buffer->_grent_buffer,
- PL_reentrant_buffer->_grent_size, char);
+ RenewDouble(PL_reentrant_buffer->_grent_buffer,
+ &PL_reentrant_buffer->_grent_size, char);
switch (PL_op->op_type) {
case OP_GGRNAM:
p0 = va_arg(ap, void *);
switch (PL_op->op_type) {
case OP_GGRNAM:
p0 = va_arg(ap, void *);
@@
-385,9
+387,8
@@
Perl_reentrant_retry(const char *f, ...)
#endif
{
Netdb_net_t net;
#endif
{
Netdb_net_t net;
- PL_reentrant_buffer->_netent_size *= 2;
- Renew(PL_reentrant_buffer->_netent_buffer,
- PL_reentrant_buffer->_netent_size, char);
+ RenewDouble(PL_reentrant_buffer->_netent_buffer,
+ &PL_reentrant_buffer->_netent_size, char);
switch (PL_op->op_type) {
case OP_GNBYADDR:
net = va_arg(ap, Netdb_net_t);
switch (PL_op->op_type) {
case OP_GNBYADDR:
net = va_arg(ap, Netdb_net_t);
@@
-417,9
+418,8
@@
Perl_reentrant_retry(const char *f, ...)
#endif
{
Uid_t uid;
#endif
{
Uid_t uid;
- PL_reentrant_buffer->_pwent_size *= 2;
- Renew(PL_reentrant_buffer->_pwent_buffer,
- PL_reentrant_buffer->_pwent_size, char);
+ RenewDouble(PL_reentrant_buffer->_pwent_buffer,
+ &PL_reentrant_buffer->_pwent_size, char);
switch (PL_op->op_type) {
case OP_GPWNAM:
p0 = va_arg(ap, void *);
switch (PL_op->op_type) {
case OP_GPWNAM:
p0 = va_arg(ap, void *);
@@
-431,8
+431,10
@@
Perl_reentrant_retry(const char *f, ...)
uid = va_arg(ap, Uid_t);
#endif
retptr = getpwuid(uid); break;
uid = va_arg(ap, Uid_t);
#endif
retptr = getpwuid(uid); break;
+#if defined(HAS_GETPWENT) || defined(HAS_GETPWENT_R)
case OP_GPWENT:
retptr = getpwent(); break;
case OP_GPWENT:
retptr = getpwent(); break;
+#endif
default:
SETERRNO(ERANGE, LIB_INVARG);
break;
default:
SETERRNO(ERANGE, LIB_INVARG);
break;
@@
-451,9
+453,8
@@
Perl_reentrant_retry(const char *f, ...)
PERL_REENTRANT_MAXSIZE / 2)
#endif
{
PERL_REENTRANT_MAXSIZE / 2)
#endif
{
- PL_reentrant_buffer->_protoent_size *= 2;
- Renew(PL_reentrant_buffer->_protoent_buffer,
- PL_reentrant_buffer->_protoent_size, char);
+ RenewDouble(PL_reentrant_buffer->_protoent_buffer,
+ &PL_reentrant_buffer->_protoent_size, char);
switch (PL_op->op_type) {
case OP_GPBYNAME:
p0 = va_arg(ap, void *);
switch (PL_op->op_type) {
case OP_GPBYNAME:
p0 = va_arg(ap, void *);
@@
-481,9
+482,8
@@
Perl_reentrant_retry(const char *f, ...)
PERL_REENTRANT_MAXSIZE / 2)
#endif
{
PERL_REENTRANT_MAXSIZE / 2)
#endif
{
- PL_reentrant_buffer->_servent_size *= 2;
- Renew(PL_reentrant_buffer->_servent_buffer,
- PL_reentrant_buffer->_servent_size, char);
+ RenewDouble(PL_reentrant_buffer->_servent_buffer,
+ &PL_reentrant_buffer->_servent_size, char);
switch (PL_op->op_type) {
case OP_GSBYNAME:
p0 = va_arg(ap, void *);
switch (PL_op->op_type) {
case OP_GSBYNAME:
p0 = va_arg(ap, void *);