You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Damir Dezeljin <pr...@mbss.org> on 2005/03/14 19:35:52 UTC

APR OS400 sources

Hi.


I'm wondering if APR OS400 port sources are publicaly available? Does
anyone know anything about this? What about apache sources?


I'm asking it because I'm developing an application on OS400. I'm using
APR as a portability library, however from time to time I need to use OS
API. Having APR sources will be really helpful ;) E.g. I need to get a
thread ID for my logging module implementation (the logging module will
not using APR).

On e.g. Linux it is enough to call getpid(). Unfortunately this call
returns the same process ID for all threads on OS400. Any idea?

Anyway ... is it posible to use apr_os_thread_current() for this purpose?
<< I was unable to use it as I didn't find the declaration of the
apr_os_thread_t structure.
Will apr functions for 'decoding' threads IDs represent a big performance
hit in my application?


Thanks and best regards,
Dezo


Re: APR OS400 sources

Posted by Jeff Trawick <tr...@gmail.com>.
On Mon, 14 Mar 2005 19:35:52 +0100 (GMT-1), Damir Dezeljin
<pr...@mbss.org> wrote:

> I'm wondering if APR OS400 port sources are publicaly available? Does
> anyone know anything about this? What about apache sources?

I have no idea of the OS/400 patches and/or full sources they use are
publically available.

> I'm asking it because I'm developing an application on OS400. I'm using
> APR as a portability library, however from time to time I need to use OS
> API. Having APR sources will be really helpful ;) E.g. I need to get a
> thread ID for my logging module implementation (the logging module will
> not using APR).
> 
> On e.g. Linux it is enough to call getpid(). Unfortunately this call
> returns the same process ID for all threads on OS400. Any idea?

you're relying on a Linux wart which has been fixed in recent Linux ;)

> 
> Anyway ... is it posible to use apr_os_thread_current() for this purpose?
> << I was unable to use it as I didn't find the declaration of the
> apr_os_thread_t structure.
> Will apr functions for 'decoding' threads IDs represent a big performance
> hit in my application?

Here's what Apache's mod_log_config does for logging the thread id:

static const char *log_pid_tid(request_rec *r, char *a)
{
    if (*a == '\0' || !strcmp(a, "pid")) {
        return apr_psprintf(r->pool, "%" APR_PID_T_FMT, getpid());
    }
    else if (!strcmp(a, "tid")) {
#if APR_HAS_THREADS
        apr_os_thread_t tid = apr_os_thread_current();
#else
        int tid = 0; /* APR will format "0" anyway but an arg is needed */
#endif
        return apr_psprintf(r->pool, "%pT", &tid);
    }
    /* bogus format */
    return a;
}