projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
COMPILED-PROGRAM-ERROR source form needs *PRINT-ESCAPE*
[sbcl.git]
/
src
/
runtime
/
dynbind.c
diff --git
a/src/runtime/dynbind.c
b/src/runtime/dynbind.c
index
1d62ee0
..
32f79f0
100644
(file)
--- a/
src/runtime/dynbind.c
+++ b/
src/runtime/dynbind.c
@@
-24,7
+24,6
@@
#include "pseudo-atomic.h"
#include "genesis/symbol.h"
#include "genesis/binding.h"
#include "pseudo-atomic.h"
#include "genesis/symbol.h"
#include "genesis/binding.h"
-#include "genesis/thread.h"
#include "genesis/static-symbols.h"
void bind_variable(lispobj symbol, lispobj value, void *th)
#include "genesis/static-symbols.h"
void bind_variable(lispobj symbol, lispobj value, void *th)
@@
-44,9
+43,8
@@
void bind_variable(lispobj symbol, lispobj value, void *th)
get_spinlock(tls_index_lock,(long)th);
if(!sym->tls_index) {
sym->tls_index=SymbolValue(FREE_TLS_INDEX,0);
get_spinlock(tls_index_lock,(long)th);
if(!sym->tls_index) {
sym->tls_index=SymbolValue(FREE_TLS_INDEX,0);
- SetSymbolValue(FREE_TLS_INDEX,
- make_fixnum(fixnum_value(sym->tls_index)+1),0);
- if(fixnum_value(sym->tls_index)>=TLS_SIZE) {
+ SetSymbolValue(FREE_TLS_INDEX, sym->tls_index+N_WORD_BYTES, 0);
+ if((sym->tls_index)>=(TLS_SIZE << WORD_SHIFT)) {
lose("Thread local storage exhausted.");
}
}
lose("Thread local storage exhausted.");
}
}