gnodet opened a new pull request, #25241:
URL: https://github.com/apache/camel/pull/25241

   _Claude Code on behalf of @gnodet_
   
   ## Summary
   
   - Convert all 34 `synchronized` methods in `MllpSocketBuffer.java` to use 
`java.util.concurrent.locks.ReentrantLock` for virtual thread compatibility
   - `synchronized` blocks cause virtual thread pinning (the carrier thread 
cannot be released while a virtual thread holds an intrinsic monitor), which 
degrades throughput under virtual-thread workloads
   - `ReentrantLock` does not pin; it allows the carrier thread to be released 
when the virtual thread parks while waiting for the lock
   
   Each formerly-`synchronized` method now acquires the lock at entry and 
releases it in a `finally` block, preserving the same mutual-exclusion 
semantics. No `wait()`/`notify()` usage existed, so no `Condition` conversion 
was needed.
   
   All 335 existing tests pass.
   
   Part of [CAMEL-20199](https://issues.apache.org/jira/browse/CAMEL-20199): 
Complete support of Virtual Threads.
   
   ## Test plan
   
   - [x] All camel-mllp unit tests pass (335 tests, 0 failures)
   - [ ] Manual review that lock/unlock pairs are correct and no synchronized 
keywords remain
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
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