Link [ pkgsrc | NetBSD | pkgsrc git mirror | PR fulltext-search | netbsd commit viewer ]


   
        usage: [branch:branch] [user:user] [path[@revision]] keyword [... [-excludekeyword [...]]] (e.g. branch:MAIN pkgtools/pkg)




switch to index mode

recent branches: MAIN (17m)  pkgsrc-2024Q1 (6d)  pkgsrc-2023Q4 (53d)  pkgsrc-2023Q2 (85d)  pkgsrc-2023Q3 (165d) 

2024-05-23 19:33:48 UTC Now

2020-04-26 13:31:28 UTC MAIN commitmail json YAML

(devel/p5-B-COW) import p5-B-COW-0.004

B::COW provides some naive additional B helpers to check the COW
status of one SvPV.  COW or Copy On Write introduction

A COWed SvPV is sharing its string (the PV) with other SvPVs. It's a
(kind of) Read Only C string, that would be Copied On Write (COW).

More than one SV can share the same PV, but when one PV need to alter
it, it would perform a copy of it, decrease the COWREFCNT counter.

One SV can then drop the COW flag when it's the only one holding a
pointer to the PV.

The COWREFCNT is stored at the end of the PV, after the the "\0".

That value is limited to 255, when we reach 255, a new PV would be
created,

(mef)