//uspace/trunk/libc/generic/thread.c |
---|
63,8 → 63,7 |
tcb = __alloc_tls(&data, tls_size); |
memcpy(data, &_tdata_start, &_tdata_end - &_tdata_start); |
memset(data + (&_tbss_start-&_tdata_start), &_tbss_end-&_tbss_start, 0); |
memset(data + (&_tbss_start-&_tdata_start), 0, &_tbss_end-&_tbss_start); |
return tcb; |
} |
//uspace/trunk/libc/generic/psthread.c |
---|
52,7 → 52,7 |
/** Count of real threads that are in async_serialized mode */ |
static int serialized_threads; /* Protected by async_futex */ |
/** Thread-local count of serialization. If >0, we must not preempt */ |
static __thread serialization_count; |
static __thread int serialization_count; |
/** Counter of threads residing in async_manager */ |
static int threads_in_manager; |
89,7 → 89,6 |
{ |
psthread_data_t *pt = __tcb_get()->pst_data; |
serialization_count = 0; // TODO: WHY HERE? |
pt->retval = pt->func(pt->arg); |
pt->finished = 1; |
//uspace/trunk/libc/generic/async.c |
---|
539,7 → 539,6 |
*/ |
static int async_manager_thread(void *arg) |
{ |
in_interrupt_handler = 0; // TODO: Handle TLS better |
futex_up(&async_futex); /* async_futex is always locked when entering |
* manager */ |
async_manager_worker(); |