svn commit: r245630 - head/lib/libthr/thread
Jilles Tjoelker
jilles at FreeBSD.org
Fri Jan 18 23:08:41 UTC 2013
Author: jilles
Date: Fri Jan 18 23:08:40 2013
New Revision: 245630
URL: http://svnweb.freebsd.org/changeset/base/245630
Log:
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
Modified:
head/lib/libthr/thread/thr_init.c
head/lib/libthr/thread/thr_kern.c
Modified: head/lib/libthr/thread/thr_init.c
==============================================================================
--- head/lib/libthr/thread/thr_init.c Fri Jan 18 23:04:05 2013 (r245629)
+++ head/lib/libthr/thread/thr_init.c Fri Jan 18 23:08:40 2013 (r245630)
@@ -363,6 +363,12 @@ _libpthread_init(struct pthread *curthre
_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();
}
}
Modified: head/lib/libthr/thread/thr_kern.c
==============================================================================
--- head/lib/libthr/thread/thr_kern.c Fri Jan 18 23:04:05 2013 (r245629)
+++ head/lib/libthr/thread/thr_kern.c Fri Jan 18 23:08:40 2013 (r245630)
@@ -57,11 +57,6 @@ _thr_setthreaded(int threaded)
return (0);
__isthreaded = threaded;
- if (threaded != 0) {
- _thr_rtld_init();
- } else {
- _thr_rtld_fini();
- }
return (0);
}
More information about the svn-src-head
mailing list