The NetBSD Project

CVS log for src/lib/libc/gen/pthread_atfork.c

[BACK] Up to [cvs.NetBSD.org] / src / lib / libc / gen

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.18: download - view: text, markup, annotated - select for diffs
Sat Jan 20 14:52:47 2024 UTC (11 months, 3 weeks ago) by christos
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -5 lines
Catch up with all the lint warnings since exit on warning was disabled.
Disable 'missing header declaration' and 'nested extern' warnings for now.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Tue Sep 13 10:18:47 2022 UTC (2 years, 4 months ago) by riastradh
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-1-RELEASE, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +17 -10 lines
pthread_atfork(3): Block signals during the call to pthread_atfork.

This doesn't affect the calls to the atfork handlers -- it only
protects access to the lists of handlers from interruption by a
signal, in case the signal handler calls fork(2).

Revision 1.16: download - view: text, markup, annotated - select for diffs
Tue May 31 08:43:13 2022 UTC (2 years, 7 months ago) by andvar
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +3 -3 lines
fix various typos in comments, documentation and messages.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Fri May 15 14:37:21 2020 UTC (4 years, 8 months ago) by joerg
Branches: MAIN
CVS tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +6 -2 lines
Hook up proper fork lock handling for malloc:
- lock all relevant mutexes just before fork
- unlock all mutexes just after fork in the parent
- full reinit non-spinlocks in the child
This is not using the normal pthread_atfork interface to ensure order of
operation, malloc is used as implementation detail too often.

Revision 1.10.18.1: download - view: text, markup, annotated - select for diffs
Wed May 13 18:08:38 2020 UTC (4 years, 8 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE
Diff to: previous 1.10: preferred, colored; next MAIN 1.11: preferred, colored
Changes since revision 1.10: +10 -3 lines
Pull up following revision(s) (requested by chs in ticket #907):

	libexec/ld.elf_so/rtld.c: revision 1.205
	libexec/ld.elf_so/rtld.h: revision 1.140
	libexec/ld.elf_so/symbols.map: revision 1.3
	libexec/ld.elf_so/symbols.map: revision 1.4
	lib/libc/gen/pthread_atfork.c: revision 1.13
	lib/libc/gen/pthread_atfork.c: revision 1.14
	libexec/ld.elf_so/rtld.h: revision 1.139
	libexec/ld.elf_so/rtld.c: revision 1.204

Introduce intermediate locking for fork, so that the dynamic linker is
in a consistent state. This most importantly avoids races between dlopen
and friends and fork, potentially resulting in dead locks in the child
when it itself tries to acquire locks.

Rename __atomic_fork to __locked_fork and give it &errno as argument.
rtld and libc use different storage, so the initial version would
incorrectly report the failure reason for fork().

There is still a small race condition inside ld.elf_so as it doesn't use
thread-safe errno internally, but that's a more contained internal
issue.

Revision 1.10.16.1: download - view: text, markup, annotated - select for diffs
Tue Apr 21 18:41:59 2020 UTC (4 years, 8 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.10: preferred, colored; next MAIN 1.11: preferred, colored
Changes since revision 1.10: +10 -3 lines
Sync with HEAD

Revision 1.14: download - view: text, markup, annotated - select for diffs
Sun Apr 19 01:06:15 2020 UTC (4 years, 8 months ago) by joerg
Branches: MAIN
CVS tags: phil-wifi-20200421
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +5 -5 lines
Rename __atomic_fork to __locked_fork and give it &errno as argument.
rtld and libc use different storage, so the initial version would
incorrectly report the failure reason for fork().

There is still a small race condition inside ld.elf_so as it doesn't use
thread-safe errno internally, but that's a more contained internal
issue.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu Apr 16 14:39:58 2020 UTC (4 years, 8 months ago) by joerg
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +10 -3 lines
Introduce intermediate locking for fork, so that the dynamic linker is
in a consistent state. This most importantly avoids races between dlopen
and friends and fork, potentially resulting in dead locks in the child
when it itself tries to acquire locks.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sat Feb 1 18:14:16 2020 UTC (4 years, 11 months ago) by kamil
Branches: MAIN
CVS tags: phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +3 -16 lines
Revert previous

'git grep' breaks now.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Sat Feb 1 15:38:46 2020 UTC (4 years, 11 months ago) by kamil
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +18 -5 lines
Switch atform allocations from malloc()+free() to mmap()+munmap()

This avoid bootstrapping malloc too early when libc+libpthread are not
ready. It is called through pthread__init() -> _pthread_atfork().

This also helps LLVM Leak Sanitizer to pacify false positive reports.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Jan 20 18:31:25 2015 UTC (9 years, 11 months ago) by christos
Branches: MAIN
CVS tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20191119, phil-wifi-20190609, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-8-base, netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: phil-wifi, netbsd-9
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +4 -2 lines
Fix non _REENTRANT build.

Revision 1.8.4.1: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:05:19 2012 UTC (12 years, 9 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8: +3 -3 lines
sync with head

Revision 1.9: download - view: text, markup, annotated - select for diffs
Tue Mar 20 16:36:05 2012 UTC (12 years, 9 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, agc-symver-base, agc-symver
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +3 -3 lines
Use C89 definitions.
Remove use of __P

Revision 1.7.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:30:15 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.7: preferred, colored; next MAIN 1.8: preferred, colored
Changes since revision 1.7: +2 -9 lines
sync with head.

Revision 1.8.8.2: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:23:00 2008 UTC (16 years, 8 months ago) by martin
Branches: christos-time_t
Diff to: previous 1.8.8.1: preferred, colored; branchpoint 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8.8.1: +203 -0 lines
Remove clause 3 and 4 from TNF licenses

Revision 1.8.8.1
Mon Apr 28 20:22:59 2008 UTC (16 years, 8 months ago) by martin
Branches: christos-time_t
FILE REMOVED
Changes since revision 1.8: +0 -203 lines
file pthread_atfork.c was added on branch christos-time_t on 2008-04-28 20:23:00 +0000

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:22:59 2008 UTC (16 years, 8 months ago) by martin
Branches: MAIN
CVS tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, matt-premerge-20091211, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-premerge-20101231, matt-mips64-base2, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, hpcarm-cleanup-nbase, christos-time_t-nbase, christos-time_t-base, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache, christos-time_t
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +2 -9 lines
Remove clause 3 and 4 from TNF licenses

Revision 1.6.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:14:44 2008 UTC (16 years, 9 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.6: preferred, colored; next MAIN 1.7: preferred, colored
Changes since revision 1.6: +33 -10 lines
sync with head.

Revision 1.5.10.2: download - view: text, markup, annotated - select for diffs
Sun Mar 23 00:40:25 2008 UTC (16 years, 9 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.5.10.1: preferred, colored; branchpoint 1.5: preferred, colored; next MAIN 1.6: preferred, colored
Changes since revision 1.5.10.1: +33 -10 lines
sync with HEAD

Revision 1.7: download - view: text, markup, annotated - select for diffs
Fri Mar 7 17:56:39 2008 UTC (16 years, 10 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base, matt-armv6-nbase, keiichi-mipv6-base
Branch point for: yamt-pf42
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +33 -10 lines
Keep one builtin slot so that pthread initialization doesn't need to use
malloc().

Revision 1.5.10.1: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:34:07 2008 UTC (17 years ago) by matt
Branches: matt-armv6
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +5 -5 lines
sync with HEAD

Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Dec 14 19:51:37 2007 UTC (17 years, 1 month ago) by yamt
Branches: MAIN
CVS tags: matt-armv6-base, hpcarm-cleanup-base
Branch point for: keiichi-mipv6
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +5 -5 lines
fix indentation.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Tue Sep 13 01:44:09 2005 UTC (19 years, 4 months ago) by christos
Branches: MAIN
CVS tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: matt-armv6
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -4 lines
compat core reorg.

Revision 1.3.2.1: download - view: text, markup, annotated - select for diffs
Sat Jun 11 12:15:25 2005 UTC (19 years, 7 months ago) by tron
Branches: netbsd-3
CVS tags: netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0
Diff to: previous 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3: +4 -2 lines
Pull up revision 1.4 (requested by lukem in ticket #394):
Ensure that we don't try to free random memory when another malloc fails,
by initializing newprepare, newparent, and newchild to NULL.
Detected by gcc -Wuninitialized.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Wed Jun 1 05:30:54 2005 UTC (19 years, 7 months ago) by lukem
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +4 -2 lines
Ensure that we don't try to free random memory when another malloc fails,
by initializing newprepare, newparent, and newchild to NULL.
Detected by gcc -Wuninitialized.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu Oct 21 06:46:36 2004 UTC (20 years, 2 months ago) by lukem
Branches: MAIN
CVS tags: netbsd-3-base
Branch point for: netbsd-3
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +4 -3 lines
minor KNF, making it easier to find where fork() is implemented

Revision 1.2: download - view: text, markup, annotated - select for diffs
Mon Apr 7 21:09:57 2003 UTC (21 years, 9 months ago) by nathanw
Branches: MAIN
CVS tags: netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +5 -5 lines
Oops, make the atfork queues static so they don't pollute the
namespace.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Thu Feb 13 02:50:51 2003 UTC (21 years, 11 months ago) by nathanw
Branches: MAIN
Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>