[lkml]   [2012]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] nextfd(2)
On Mon, 2012-04-02 at 16:17 -0700, KOSAKI Motohiro wrote:

> we can only call async-signal-safe functions after fork() when multi threads and
> opendir() call malloc() internally.
> As far as I know, OpenJDK has a such fork-readdir-exec code and it can
> make deadlock
> when spawnning a new process. Unfortunately Java language perfeter to
> make a lot of threads rather than other language.
> This patch can solve such multi threaded case.
> offtopic, glibc malloc is a slightly clever. It reinitialize its
> internal lock when fork by
> using thread_atfork() hook. It mean glibc malloc can be used after
> fork() and the
> technique can avoid this issue.

Yeah, a *lot* of code out there depends on this glibc malloc
implementation detail. We uncovered our dependency on this in
GNOME a while back while investigating getenv/setenv/fork and threads:

 \ /
  Last update: 2012-04-03 21:25    [W:0.236 / U:21.484 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site