projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.47.25: make instances obsolete if slot definition classes change
[sbcl.git]
/
src
/
runtime
/
thread.c
diff --git
a/src/runtime/thread.c
b/src/runtime/thread.c
index
ee11e0f
..
ca265b8
100644
(file)
--- a/
src/runtime/thread.c
+++ b/
src/runtime/thread.c
@@
-344,6
+344,12
@@
free_thread_struct(struct thread *th)
THREAD_STRUCT_SIZE);
}
THREAD_STRUCT_SIZE);
}
+#ifdef LISP_FEATURE_SB_THREAD
+/* FIXME: should be MAX_INTERRUPTS -1 ? */
+const unsigned int tls_index_start =
+ MAX_INTERRUPTS + sizeof(struct thread)/sizeof(lispobj);
+#endif
+
/* this is called from any other thread to create the new one, and
* initialize all parts of it that can be initialized from another
* thread
/* this is called from any other thread to create the new one, and
* initialize all parts of it that can be initialized from another
* thread
@@
-387,12
+393,7
@@
create_thread_struct(lispobj initial_function) {
per_thread->dynamic_values[i] = NO_TLS_VALUE_MARKER_WIDETAG;
if (all_threads == 0) {
if(SymbolValue(FREE_TLS_INDEX,0)==UNBOUND_MARKER_WIDETAG) {
per_thread->dynamic_values[i] = NO_TLS_VALUE_MARKER_WIDETAG;
if (all_threads == 0) {
if(SymbolValue(FREE_TLS_INDEX,0)==UNBOUND_MARKER_WIDETAG) {
- SetSymbolValue
- (FREE_TLS_INDEX,
- /* FIXME: should be MAX_INTERRUPTS -1 ? */
- make_fixnum(MAX_INTERRUPTS+
- sizeof(struct thread)/sizeof(lispobj)),
- 0);
+ SetSymbolValue(FREE_TLS_INDEX,make_fixnum(tls_index_start),0);
SetSymbolValue(TLS_INDEX_LOCK,make_fixnum(0),0);
}
#define STATIC_TLS_INIT(sym,field) \
SetSymbolValue(TLS_INDEX_LOCK,make_fixnum(0),0);
}
#define STATIC_TLS_INIT(sym,field) \