httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brad Nicholes" <BNICHO...@novell.com>
Subject Re: Apache-1.3: question about mod_unique_id
Date Thu, 13 Sep 2001 21:06:21 GMT
   I checked with our CLIB people and they tell me that GetThreadID is *not* unique.  In other
words, if a thread is created, it is assigned an ID.  If that thread is terminated and a new
thread is created, the new thread may reuse the ID from the terminated thread.

Brad

>>> eflash@gmx.net Thursday, September 13, 2001 2:57:08 PM >>>
Hi Bill,
> From: "dean gaudet" <dean@arctic.org>
> Sent: Thursday, September 13, 2001 11:45 AM


>>
>> but on windows you'll need to use both getpid() and GetThreadID... i
>> think
>> it's called something similar to that.  it may be "Get Thread Handle" ...
>> what you really want is the thread * that create_thread returns, or you
>> could use the scoreboard slot, but i don't see an obvious way to get at
>> either.  also -- add an extra field to unique_id_rec for the thread id.

> I suggest we add a gettid() if one does not exist, via the os.h/os.c for
> MULTITHREAD platforms.  Anyone who wants to hack on this, just assume it's
> available, and where it isn't, someone needs to implement (I'm happy to do
> so for Win32.)
ok, sounds good. Then based on Dean's post and when Brad confirms that GetThreadID is always
unique for NetWare we have only to add:
#define gettid GetThreadID

and in mod_unique_id.c we can remove the error warning and then change:
    pid = getpid();
to:
#ifdef MULTITHREAD
    pid = gettid();
#else
    pid = getpid();
#endif

On the other side I saw that some other sources inside Apache use getpid(), is this not a
problem there too? And if only Win32 has an insufficient getpid() definition, it may be enough
to redefine this only there and leave all other as is...??

Guenter.



Mime
View raw message