apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject Re: advice on use of APR_STATUS_IS_*
Date Thu, 12 May 2005 01:56:30 GMT
IIUC, if you look, there are groups of status results under
a single case.  This is especially true on OS/X and Win32.

But even on unix; consider

/** operation would block */
#if !defined(EWOULDBLOCK) || !defined(EAGAIN)
#define APR_STATUS_IS_EAGAIN(s)         ((s) == APR_EAGAIN)
#elif (EWOULDBLOCK == EAGAIN)
#define APR_STATUS_IS_EAGAIN(s)         ((s) == APR_EAGAIN)
#else
#define APR_STATUS_IS_EAGAIN(s)         ((s) == APR_EAGAIN \
                                      || (s) == EWOULDBLOCK)
#endif

which deals with this fundemental discrepancy between implementations.

At 08:38 PM 5/11/2005, Wesley W. Garland wrote:
>Aside from stylistic consistency, I can't see a compelling reason for
>using the APR_STATUS_IS_* macro group -- and I think a viable case
>could be made for avoiding them entirely for a fresh codebase. (For
>example, I have 49,773 lines of apr-centric application code here...
>and zero lines where APR_STATUS_IS_* appears).
>
>If I was working on PERL APR:: bindings, I would choose whatever is
>the best expression for the language. Not knowing PERL, I can't really
>comment there.
>
>For what it's worth, I feel fairly strong about using two types of return calls:
>
>1. check against != APR_SUCCESS
>2. check using switch() with a default: case
>
>...and I really hate unnecessary macros.
>
>But this is more of a religious discussion than an APR discussion, so
>I won't expound further. :)
>
>Wes
>
>On 5/8/05, Randy Kobes <randy@theoryx5.uwinnipeg.ca> wrote:
>> mod_perl 2 supplies some APR::* modules for binding to apr,
>> and a question has arisen regarding checking error codes
>> against the appropriate APR_* constants. In apr_errno.h
>> there are warnings about using the corresponding
>> APR_STATUS_IS_* macros, as there could be more than one
>> variant satisfying an error condition (eg,
>> APR_STATUS_IS_ENOENT). There are a number of cases though
>> for which at present there's only one such condition (eg,
>> APR_STATUS_IS_EOF). What we were wondering is if the
>> APR_STATUS_IS_* macros are still strongly recommended to use
>> in cases where there is only one variant? Or, for such
>> cases, has common useage become just to compare against the
>> corresponding APR_* constant (eg, APR_EOF)? Thanks very
>> much.
>> 
>> --
>> best regards,
>> randy kobes
>> 
>
>
>-- 
>Wesley W. Garland
>Director, Product Development
>PageMail, Inc.
>+1 613 542 2787 x 102



Mime
View raw message