Description
The following changes have been sitting in the loom repo for sometime, it's time to bring these changes into the main line:
1. Drop the begin/end compensate around ops on files opened for buffered I/O. Sergery Kuksenko analysis have demonstrated that there isn't any benefit or there is negative benefit, esp. when reading/writing a small number of bytes.
2. Continue to compensate around the following operations:
- Object.wait (temporary, will be removed with the object monitor work)
- Blocking Selector.select operations (temporary, will be removed for the epoll and kqueue Selector implementations with the object monitor work)
- FileDescriptor.sync
- MappedByteBuffer/MemorySegment.force
- File read/write when the file is opened for direct I/O
- File write when the file is opened for synchronized I/O file integrity.
- InetAddress lookupByXXX methods in platform resolver
- System.in/out/err read/write
- Process input/output/error read/write
3. Handle reentrancy as might happy if debugging code is added to ForkJoinPool, preempted when attempting to compensate, or potentially forced preemption in the future.
1. Drop the begin/end compensate around ops on files opened for buffered I/O. Sergery Kuksenko analysis have demonstrated that there isn't any benefit or there is negative benefit, esp. when reading/writing a small number of bytes.
2. Continue to compensate around the following operations:
- Object.wait (temporary, will be removed with the object monitor work)
- Blocking Selector.select operations (temporary, will be removed for the epoll and kqueue Selector implementations with the object monitor work)
- FileDescriptor.sync
- MappedByteBuffer/MemorySegment.force
- File read/write when the file is opened for direct I/O
- File write when the file is opened for synchronized I/O file integrity.
- InetAddress lookupByXXX methods in platform resolver
- System.in/out/err read/write
- Process input/output/error read/write
3. Handle reentrancy as might happy if debugging code is added to ForkJoinPool, preempted when attempting to compensate, or potentially forced preemption in the future.