<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libpthread/thread/thr_rtld.c, branch release/6.3.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F6.3.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F6.3.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2006-03-16T23:29:08Z</updated>
<entry>
<title>MFC: Relevent commit logs are below.</title>
<updated>2006-03-16T23:29:08Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2006-03-16T23:29:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=40837c5215e9e4c23b101a3189cd6c208d173e0c'/>
<id>urn:sha1:40837c5215e9e4c23b101a3189cd6c208d173e0c</id>
<content type='text'>
  Only catch SIGINFO (for dumping thread states) when LIBPTHREAD_DEBUG
  is defined in the environment.

  Modify the code path of the ifdef NOTYET part of _kse_single_thread():

  o  Don't reinitialise the atfork() handler list in the child.  We
     are meant to call the child handler, and on subsequent fork()s
     should call all three functions as normal.
  o  Don't reinitialise the thread specific keyed data in the
     child after a fork.  Applications may require this for context.
  o  Reinitialise curthread-&gt;tlflags after removing ourselves from
     (and reinitialising) the various internal thread lists.
  o  Reinitialise __malloc_lock in the child after fork() (to balance
     our explicitly taking the lock prior to the fork()).

  With these changes, it is possible to enable the NOTYET code in
  thr_kern.c to allow the use of non-async-safe functions after
  fork()ing from a threaded program.

  Eliminate a race condition in timed waits (cv, mutex, and sleeps).

  Don't forget to initialize a tailq before using it.

  For the ``#ifdef NOTYET'' code that allows calling non-async-safe
  functions in the child after a fork() from a threaded process,
  use __sys_setprocmask() rather than setprocmask() to keep our
  signal handling sane.  Without this fix, signals are essentially
  ignored in said child and things such as protection violations
  result in an endless busy loop.

  Allocate a thread's tcb last so it is easier to handle failures to
  malloc() siginfo.

  Include needed headers that were obtained through &lt;pthread.h&gt;.  Sort headers
  while here.

  amd64
  -----
  Fix a race condition introduced when redzones were added.  Use an
  atomic operation to return and adjust the stack (amd64).

  test
  -----
  o  Include &lt;string.h&gt;
  o  Make this ILP32/LP64 clean: cast pointers to long.

Approved by:	re (scottl)
</content>
</entry>
<entry>
<title>style(9)</title>
<updated>2003-11-05T18:19:24Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-11-05T18:19:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7a1192c1d37d834a4049eb6d9082cef62e2d47fb'/>
<id>urn:sha1:7a1192c1d37d834a4049eb6d9082cef62e2d47fb</id>
<content type='text'>
Reviewed by:	bde
</content>
</entry>
<entry>
<title>s/foo()/foo(void)/</title>
<updated>2003-11-04T19:58:12Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-11-04T19:58:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=264978955eff13e77c96dc8cc1be9c00ebc121a4'/>
<id>urn:sha1:264978955eff13e77c96dc8cc1be9c00ebc121a4</id>
<content type='text'>
Add a blank line after a variable declaration.
</content>
</entry>
<entry>
<title>Tweak rtld lock to allow recursive on reader lock and detect recursive</title>
<updated>2003-08-10T22:15:03Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-08-10T22:15:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3fceb84efd0590af034c265e94e26da0e076b090'/>
<id>urn:sha1:3fceb84efd0590af034c265e94e26da0e076b090</id>
<content type='text'>
on writer lock. This is first cut at rwlock for rtld.

Submitted by: desichen
</content>
</entry>
<entry>
<title>Temporary disable rwlock based code, replace it with low level KSE locking</title>
<updated>2003-06-28T09:47:22Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-06-28T09:47:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8d5f23a1f97a824a5305fca25b1adf8f752ad321'/>
<id>urn:sha1:8d5f23a1f97a824a5305fca25b1adf8f752ad321</id>
<content type='text'>
code until rtld-elf and libkse can cooperate better, those code can be
restored.

Reviewed by: deischen
</content>
</entry>
<entry>
<title>Attempt to eliminate PLT relocations from rwlock aquire/release</title>
<updated>2003-05-30T00:21:52Z</updated>
<author>
<name>Alexander Kabaev</name>
<email>kan@FreeBSD.org</email>
</author>
<published>2003-05-30T00:21:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=84d55c7fad83f4fa1330cc8c2206da8ebd0b300d'/>
<id>urn:sha1:84d55c7fad83f4fa1330cc8c2206da8ebd0b300d</id>
<content type='text'>
path, making them suitable for direct use by the dynamic loader.

Register libpthread-specific locking API with rtld on startup.

This still has some rough edges with signals which should be
addresses later.

Approved by:	re (scottl)
</content>
</entry>
</feed>
