diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-03-11 18:57:22 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-03-11 18:57:22 +0100 |
commit | 25f04a68a168a948783618910e115316eb0ed3fc (patch) | |
tree | b3cb88e49ef21b5855569918634937bdbf78b19e /sys/src/cmd/eqn | |
parent | 34ec2056041a193a471701dd50e2032dc300fb0e (diff) |
ape: threadsafe errno
store errno on the private process stack so its always per process
and not just per memory space. errno itself becomes a macro
dereferencing int *_errnoloc; which is initialized from main9.s
pointing to the private stack location.
various fixes in programs that just imported errno variable with
"extern int errno;" instead of including <errno.h>.
Diffstat (limited to 'sys/src/cmd/eqn')
-rw-r--r-- | sys/src/cmd/eqn/lex.c | 2 | ||||
-rw-r--r-- | sys/src/cmd/eqn/main.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/src/cmd/eqn/lex.c b/sys/src/cmd/eqn/lex.c index e535b8699..454a39abc 100644 --- a/sys/src/cmd/eqn/lex.c +++ b/sys/src/cmd/eqn/lex.c @@ -1,6 +1,7 @@ #include "e.h" #include "y.tab.h" #include <ctype.h> +#include <errno.h> #define SSIZE 1000 char token[SSIZE]; @@ -234,7 +235,6 @@ void include(void) char name[100]; FILE *fin; int c; - extern int errno; while ((c = input()) == ' ') ; diff --git a/sys/src/cmd/eqn/main.c b/sys/src/cmd/eqn/main.c index 879b979e5..a0654d867 100644 --- a/sys/src/cmd/eqn/main.c +++ b/sys/src/cmd/eqn/main.c @@ -1,4 +1,5 @@ #include "e.h" +#include <errno.h> #define MAXLINE 3600 /* maximum input line */ @@ -92,7 +93,6 @@ getdata(void) { int i, type, ln; char fname[100]; - extern int errno; errno = 0; curfile->lineno = 0; |