olabusayoT opened a new pull request, #1717:
URL: https://github.com/apache/daffodil/pull/1717

   Suspensions blocked on a not-yet-known DFDL length (dfdl:valueLength, 
dfdl:contentLength) now register directly on the referenced element's 
LengthState and get retried the moment that length becomes known, instead of 
waiting for SuspensionTracker's periodic sweep (LengthState.notifyWaiters, 
InfosetImpl.scala; registration in DPath.scala's InfosetLengthUnknownException 
handling).
   
   SuspensionTracker gains a dedicated pendingCount, a separate 
suspensionsParked queue for suspensions with a registered targeted wake-up 
(removed from the periodic rotation entirely, pruned once resolved so a 
suspension that resolves out-of-band doesn't sit retained for the rest of the 
document), and
   evalBuildResolvableSuspensions, a sweep variant for callers that can't write 
real bytes yet (a discard-sink traversal), gated by 
Suspension.canResolveWithoutWriting.
   
   Suspension.suspendWithoutAttempting registers and tracks a suspension 
without ever calling doTask, for callers that already know, from static 
information doTask itself can't see, that the first attempt is certain to 
block; used by ElementOVCSpecifiedLengthUnparser when its expression can never 
resolve without a real written DOS bit position.
   
   cloneForSuspension (UState.scala) sizes its escapeSchemeEVCache/ 
delimiterStack MStack clones to the source's actual depth instead of MStack's 
default 32-slot allocation.
   
   DAFFODIL-3065


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to