Stipe Tolj wrote:
> 
> ok, I just commited this:
> 
> 2003-06-19  Stipe Tolj  <[EMAIL PROTECTED]>
>     * gwlib/gwthread.h, gwlib/gwthread-pthread.c: added function
>       gwthread_table_slot() to provide the slot integer of threadtable
>       the thread is using.
>     * gwlib/log.c: fixed Michael's reported bug for the logging
> functions.
> 
> please update your trees and check.
> 
> It implements the module access to the thread[] mapping table inside
> the logging module to ensure we don't access over the array limit.
> 
> Because gwthread_self() is unique and assigned to a free slot when the
> thread is registered, also (gwthread_self() % THREADTABLE_SIZE) is
> unique and provides us with the correct slot the thread belongs to.

bounced back the revision of the gwthread files. In order to have them
not changed I simply #define'ed things inside log.c directly:

/*
 * Ensure we use the real threadtable slot number to map the thread id
 * instead of the thread id reported by gwthread_self()
 */
#define thread_slot() (gwthread_self() % THREADTABLE_SIZE)

and hence:

void error(int e, const char *fmt, ...) 
{
    if ((e = thread_to[thread_slot()])) {
        FUNCTION_GUTS_EXCL(GW_ERROR, "");
    } else {
        FUNCTION_GUTS(GW_ERROR, "");
    }
}

that's it.

Stipe

[EMAIL PROTECTED]
-------------------------------------------------------------------
Wapme Systems AG

Vogelsanger Weg 80
40470 D�sseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
-------------------------------------------------------------------
wapme.net - wherever you are

Reply via email to