Skip to content

Fix $suspendImpl compression for lincheck#788

Open
dmitrii-artuhov wants to merge 1 commit intodevelopfrom
fix-suspend-impl-compression
Open

Fix $suspendImpl compression for lincheck#788
dmitrii-artuhov wants to merge 1 commit intodevelopfrom
fix-suspend-impl-compression

Conversation

@dmitrii-artuhov
Copy link
Collaborator

No description provided.

@dmitrii-artuhov dmitrii-artuhov requested a review from ndkoval July 31, 2025 19:50
Base automatically changed from eupp/owner-names-fixes to develop July 31, 2025 21:48
@dmitrii-artuhov dmitrii-artuhov force-pushed the fix-suspend-impl-compression branch from 3d5057a to dfb283d Compare July 31, 2025 22:55
| | receivers.getAndIncrement(): 0 |
| | BufferedChannel.updateCellReceive(ChannelSegment#1, 0, 0, null): <SUSPEND_NO_WAITER> |
| | BufferedChannelKt.access$getSUSPEND$p(): <SUSPEND> |
| | BufferedChannelKt.access$getFAILED$p(): <FAILED> |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know why, but the trace looks worse now, with BufferedChannelKt as the owner name (we should probably avoid such owner names) and all these $-containing events. May I ask you to design a fix proposal, please?

val singleChild = if (node.children.size == 1) node.children[0] else return@compressNodes node
if (node !is CallNode || singleChild !is CallNode) return@compressNodes node
if ("${node.tracePoint.methodName}\$suspendImpl" != singleChild.tracePoint.methodName) return@compressNodes node
val isSuspendImplAndSwitch = node.children.size == 2 && node.children[1].tracePoint is SwitchEventTracePoint
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add human-readable comments explaining the logic

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.

2 participants