X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=57afb3e37cf02f30d9f68c25c318844aa045db3f;hb=35dcc76e92e9d0d2ee72780d700d8645acd7cae8;hp=7e5d994bd46808c004fd0421e3310b5812592f5f;hpb=ffbc6a930f7d2050ba54ac6bb9f15db93c1fab59;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 7e5d994..57afb3e 100644 --- a/perl.h +++ b/perl.h @@ -718,6 +718,11 @@ typedef struct perl_mstats perl_mstats_t; # define WIN32SCK_IS_STDSCK /* don't pull in custom wsock layer */ #endif +/* In Tru64 use the 4.4BSD struct msghdr, not the 4.3 one */ +#if defined(__osf__) && defined(__alpha) && !defined(_SOCKADDR_LEN) +# define _SOCKADDR_LEN +#endif + #if defined(HAS_SOCKET) && !defined(VMS) /* VMS handles sockets via vmsish.h */ # include # if defined(USE_SOCKS) && defined(I_SOCKS) @@ -1837,10 +1842,12 @@ typedef pthread_key_t perl_key; #endif /* This defines a way to flush all output buffers. This may be a - * performance issue, so we allow people to disable it. + * performance issue, so we allow people to disable it. Also, if + * we are using stdio, there are broken implementations of fflush(NULL) + * out there, Solaris being the most prominent. */ #ifndef PERL_FLUSHALL_FOR_CHILD -# if defined(FFLUSH_NULL) || defined(USE_SFIO) +# if defined(USE_PERLIO) || defined(FFLUSH_NULL) || defined(USE_SFIO) # define PERL_FLUSHALL_FOR_CHILD PerlIO_flush((PerlIO*)NULL) # else # ifdef FFLUSH_ALL @@ -3478,17 +3485,21 @@ typedef struct am_table_short AMTS; * nice_chunk and nice_chunk size need to be set * and queried under the protection of sv_mutex */ -#define offer_nice_chunk(chunk, chunk_size) do { \ - LOCK_SV_MUTEX; \ - if (!PL_nice_chunk) { \ - PL_nice_chunk = (char*)(chunk); \ - PL_nice_chunk_size = (chunk_size); \ - } \ - else { \ - Safefree(chunk); \ - } \ - UNLOCK_SV_MUTEX; \ - } while (0) +#define offer_nice_chunk(chunk, chunk_size) STMT_START { \ + void *new_chunk; \ + U32 new_chunk_size; \ + LOCK_SV_MUTEX; \ + new_chunk = (void *)(chunk); \ + new_chunk_size = (chunk_size); \ + if (new_chunk_size > PL_nice_chunk_size) { \ + if (PL_nice_chunk) Safefree(PL_nice_chunk); \ + PL_nice_chunk = new_chunk; \ + PL_nice_chunk_size = new_chunk_size; \ + } else { \ + Safefree(chunk); \ + } \ + UNLOCK_SV_MUTEX; \ + } STMT_END #ifdef HAS_SEM # include @@ -3626,6 +3637,20 @@ typedef struct am_table_short AMTS; NVff NVgf + HAS_USLEEP + HAS_UALARM + + HAS_SETITIMER + HAS_GETITIMER + + HAS_SENDMSG + HAS_RECVMSG + HAS_READV + HAS_WRITEV + I_SYSUIO + HAS_STRUCT_MSGHDR + HAS_STRUCT_CMSGHDR + so that Configure picks them up. */ #endif /* Include guard */