* DevNotes: Add entry cgf-000014.
* cygheap.cc (tls_sentry): Move here, rename from 'sentry' in cygtls.cc (tls_sentry::lock): Ditto. (nthreads): Move from cygtls.cc (THREADLIST_CHUNK): Ditto. (cygheap_init): Call init_tls_list(). (init_cygheap::init_tls_list): Define new function. (init_cygheap::add_tls): Ditto. (init_cygheap::remove_tls): Ditto. (init_cygheap::find_tls): Ditto. Semi-resurrect from _cygtls::find_tls. * cygheap.h (init_cygheap::init_tls_list): Declare new function. (init_cygheap::add_tls): Ditto. (init_cygheap::remove_tls): Ditto. (init_cygheap::find_tls): Ditto. * cygtls.cc (sentry): Delete. (sentry::lock): Ditto. (nthreads): Ditto. (THREADLIST_CHUNK): Ditto. (_cygtls::init): Delete definition. (_cygtls::init_thread): Call cygheap->add_tls() to add thread to global list. (_cygtls::remove): cygheap->remove_tls() to remove thread from global list. * cygtls.h (_cygtls::init): Delete declaration. * dcrt0.cc (dll_crt0_0): Delete call to _cygtls::init(). * exceptions.cc (sigpacket::process): When no thread is specified, try to find one via cygheap->find_tls.
This commit is contained in:
@@ -396,6 +396,10 @@ struct init_cygheap: public mini_cygheap
|
||||
hook_chain hooks;
|
||||
void close_ctty ();
|
||||
void init_installation_root ();
|
||||
void init_tls_list () __attribute__ ((regparm (1)));;
|
||||
void add_tls (_cygtls *) __attribute__ ((regparm (2)));
|
||||
void remove_tls (_cygtls *, DWORD) __attribute__ ((regparm (3)));
|
||||
_cygtls *find_tls (int) __attribute__ ((regparm (2)));
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user