OpenBSD CVS

CVS log for src/share/man/man9/refcnt_init.9


[BACK] Up to [local] / src / share / man / man9

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.6 / (download) - annotate - [select for diffs], Wed Jul 12 18:14:13 2023 UTC (10 months, 3 weeks ago) by jmc
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, HEAD
Changes since 1.5: +2 -2 lines
Diff to previous 1.5 (colored)

missing word; from thib4711

Revision 1.5 / (download) - annotate - [select for diffs], Thu Jul 6 20:53:53 2023 UTC (11 months ago) by kn
Branch: MAIN
Changes since 1.4: +3 -2 lines
Diff to previous 1.4 (colored)

missed refcnt_init_trace in NAME

Revision 1.4 / (download) - annotate - [select for diffs], Thu Jul 6 20:51:31 2023 UTC (11 months ago) by kn
Branch: MAIN
Changes since 1.3: +9 -2 lines
Diff to previous 1.3 (colored)

Document dt(4)'s refcnt_init_trace

"yes please" mvs
Input jca

Revision 1.3 / (download) - annotate - [select for diffs], Sat Apr 30 14:44:04 2022 UTC (2 years, 1 month ago) by visa
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.2: +13 -2 lines
Diff to previous 1.2 (colored)

Enforce proper memory ordering in refcnt_rele() and refcnt_finalize()

Make refcnt_rele() and refcnt_finalize() order memory operations so that
preceding loads and stores happen before 1->0 transition. Also ensure
that loads and stores that depend on the transition really begin only
after the transition has occurred. Otherwise the object destructor might
not see the object's latest state.

OK bluhm@

Revision 1.2 / (download) - annotate - [select for diffs], Wed Mar 16 14:13:01 2022 UTC (2 years, 2 months ago) by visa
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.1: +28 -3 lines
Diff to previous 1.1 (colored)

Add refcnt_shared() and refcnt_read()

refcnt_shared() checks whether the object has multiple references.
When refcnt_shared() returns zero, the caller is the only reference
holder.

refcnt_read() returns a snapshot of the counter value.

refcnt_shared() suggested by dlg@.

OK dlg@ mvs@

Revision 1.1 / (download) - annotate - [select for diffs], Fri Sep 11 19:13:22 2015 UTC (8 years, 8 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9

introduce a wrapper around reference counts called refcnt.

its basically atomic inc/dec, but it includes magical sleep code
in refcnt_finalise that is better written once than many times.
refcnt_finalise sleeps until all references are released and does
so with sleep_setup and sleep_finalize, which is fairly subtle.

putting this in now so i we can get on with work in the stack, a
proper discussion about visibility and how available intrinsics
should be in the kernel can happen after next week.

with help from guenther@
ok guenther@ deraadt@ mpi@

This form allows you to request diff's 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.