Availability:built-in
blob_type_property(?Type,
?Property)True when the registered blob type Type has Property.
With
Type unbound this enumerates the registered types; note that
a type is registered on first use, so a type whose library has not yet
created a blob is not enumerated. Defined properties are below; only
gc_margin(Units) can be set, using set_blob_type/2.
- unique
- text
- nocopy
- wchar
- The
PL_BLOB_* flags of the type, present only if set. See
section
12.4.10.1.
- rank(Integer)
- Position of the type in the standard order of terms. The order between
types is assigned as they are registered and is thus not stable over
runs.
- padding(Bytes)
- Zero bytes added after the data of a copied blob.
- gc_margin(Units)
- Request atom garbage collection once this many units of Type
have become candidates for it. A blob counts with the length it was
created with, so the unit is bytes for text and for types that report
what they retain, and instances for types that report
1. 0,
the default for every type, leaves Type to agc_margin,
which counts atoms regardless of what they keep alive. Setting
agc_margin to zero
disables atom garbage collection and no type budget overrides that. See section
12.4.10.3.
- unregistered(Units)
- How much of Type is currently a candidate for collection, in
the same units. Compare against
gc_margin(Units) to see how
far behind collection is.
- non_garbage(Units)
- How much the last collection found to be live and therefore discounted.
The next request needs
gc_margin(Units) on top of this,
which is what stops a type whose blobs are live from asking repeatedly.
- live(Count)
- space(Units)
- The number of blobs of this type that exist and what they hold. Unlike
counting current_blob/2
these are maintained as blobs come and go and do not scan the atom
table.
- Introduced in 10.1.13 (👉18a5a54) blob_type_property/2 and set_blob_type/2