libthr: Always use the threaded rtld lock implementation.

The threaded rtld lock implementation is faster even in the single-threaded
case because it postpones signal handlers via THR_CRITICAL_ENTER and
THR_CRITICAL_LEAVE instead of calling sigprocmask(2).

As a result, exception handling becomes faster in single-threaded
applications linked with libthr.

Reviewed by:	kib
This commit is contained in:
Jilles Tjoelker 2013-01-18 23:08:40 +00:00
parent 33b61a0b06
commit b18943f3b4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=245630
2 changed files with 6 additions and 5 deletions

View File

@ -363,6 +363,12 @@ _libpthread_init(struct pthread *curthread)
_thr_signal_init();
if (_thread_event_mask & TD_CREATE)
_thr_report_creation(curthread, curthread);
/*
* Always use our rtld lock implementation.
* It is faster because it postpones signal handlers
* instead of calling sigprocmask(2).
*/
_thr_rtld_init();
}
}

View File

@ -57,11 +57,6 @@ _thr_setthreaded(int threaded)
return (0);
__isthreaded = threaded;
if (threaded != 0) {
_thr_rtld_init();
} else {
_thr_rtld_fini();
}
return (0);
}