Skip to content

Implement Write Barrier and dsize for FFI::Struct#1007

Merged
larskanis merged 1 commit into
ffi:masterfrom
casperisfine:struct-write-barrier
Mar 6, 2023
Merged

Implement Write Barrier and dsize for FFI::Struct#1007
larskanis merged 1 commit into
ffi:masterfrom
casperisfine:struct-write-barrier

Conversation

@casperisfine

Copy link
Copy Markdown

And FFI::Struct::InlineArray.

Ref: #991

Write barrier protected objects are allowed to be promoted to the old generation, which means they only get marked on major GC.

The downside is that the RB_BJ_WRITE macro MUST be used to set references, otherwise the referenced object may be garbaged collected.

This commit also implement a dsize function so that these instance report a more relevant size in various memory profilers.

And FFI::Struct::InlineArray.

Write barrier protected objects are allowed to be promoted to the old generation,
which means they only get marked on major GC.

The downside is that the RB_BJ_WRITE macro MUST be used to set references,
otherwise the referenced object may be garbaged collected.

This commit also implement a `dsize` function so that these instance
report a more relevant size in various memory profilers.
@larskanis
larskanis merged commit f523242 into ffi:master Mar 6, 2023
@casperisfine casperisfine mentioned this pull request Apr 3, 2023
40 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants