From 9237542a998e2390044799c923d47d79451484e2 Mon Sep 17 00:00:00 2001
From: Andre Malo Warning - this is a cut 'n paste job from an email:
- <022501c1c529$f63a9550$7f00000a@KOJ>How filters work in Apache 2.0
There are three basic filter types (each of these is actually broken diff --git a/docs/manual/developer/thread_safety.html b/docs/manual/developer/thread_safety.html index 4656b58cd4..ad6e73c0e4 100644 --- a/docs/manual/developer/thread_safety.html +++ b/docs/manual/developer/thread_safety.html @@ -50,9 +50,11 @@ If one thread calls a low-level function that sets errno and then another thread checks it, we are bleeding error numbers from one thread into another. To solve this, make sure your module or library defines _REENTRANT or is compiled with -D_REENTRANT. This will make errno a per-thread - variable and should hopefully be transparent to the code. It does this by doing something like this: + variable and should hopefully be transparent to the code. It does this by doing something like this: +#define errno (*(__errno_location()))- which means that accessing errno will call __errno_location() which is provided by the libc. Setting + +which means that accessing errno will call __errno_location() which is provided by the libc. Setting _REENTRANT also forces redefinition of some other functions to their *_r equivalents and sometimes changes the common getc/putc macros into safer function calls. Check your libc documentation for specifics. Instead of, or in addition to _REENTRANT the symbols that may affect this are -- 2.40.0