Some cleanup to make it more readable (#10586)
Motivation: some cleanup to make it more readable Modifications: - fix typos - remove cqe kRingMask - remove unused pendingWakeup Result: cleaner code
This commit is contained in:
parent
11ef990f05
commit
0421c9c751
@ -714,10 +714,14 @@ abstract class AbstractIOUringChannel extends AbstractChannel implements UnixCha
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doDeregister() throws Exception {
|
||||
protected void doDeregister() {
|
||||
IOUringSubmissionQueue submissionQueue = submissionQueue();
|
||||
|
||||
if (submissionQueue != null) {
|
||||
if ((ioState & (POLL_IN_SCHEDULED | POLL_OUT_SCHEDULED | POLL_RDHUP_SCHEDULED)) == 0) {
|
||||
((IOUringEventLoop) eventLoop()).remove(this);
|
||||
return;
|
||||
}
|
||||
if ((ioState & POLL_IN_SCHEDULED) != 0) {
|
||||
submissionQueue.addPollRemove(socket.intValue(), Native.POLLIN);
|
||||
}
|
||||
|
@ -33,8 +33,8 @@ final class IOUringCompletionQueue {
|
||||
//these unsigned integer pointers(shared with the kernel) will be changed by the kernel
|
||||
private final long kHeadAddress;
|
||||
private final long kTailAddress;
|
||||
private final long kringMaskAddress;
|
||||
private final long kringEntries;
|
||||
private final long kRingMaskAddress;
|
||||
private final long kRingEntriesAddress;
|
||||
private final long kOverflowAddress;
|
||||
|
||||
private final long completionQueueArrayAddress;
|
||||
@ -46,20 +46,20 @@ final class IOUringCompletionQueue {
|
||||
private final int ringMask;
|
||||
private int ringHead;
|
||||
|
||||
IOUringCompletionQueue(long kHeadAddress, long kTailAddress, long kringMaskAddress, long kringEntries,
|
||||
IOUringCompletionQueue(long kHeadAddress, long kTailAddress, long kRingMaskAddress, long kRingEntriesAddress,
|
||||
long kOverflowAddress, long completionQueueArrayAddress, int ringSize, long ringAddress,
|
||||
int ringFd) {
|
||||
this.kHeadAddress = kHeadAddress;
|
||||
this.kTailAddress = kTailAddress;
|
||||
this.kringMaskAddress = kringMaskAddress;
|
||||
this.kringEntries = kringEntries;
|
||||
this.kRingMaskAddress = kRingMaskAddress;
|
||||
this.kRingEntriesAddress = kRingEntriesAddress;
|
||||
this.kOverflowAddress = kOverflowAddress;
|
||||
this.completionQueueArrayAddress = completionQueueArrayAddress;
|
||||
this.ringSize = ringSize;
|
||||
this.ringAddress = ringAddress;
|
||||
this.ringFd = ringFd;
|
||||
|
||||
this.ringMask = PlatformDependent.getIntVolatile(kringMaskAddress);
|
||||
this.ringMask = PlatformDependent.getIntVolatile(kRingMaskAddress);
|
||||
this.ringHead = PlatformDependent.getIntVolatile(kHeadAddress);
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,6 @@ final class IOUringEventLoop extends SingleThreadEventLoop implements
|
||||
private final byte[] inet6AddressArray = new byte[16];
|
||||
|
||||
private long prevDeadlineNanos = NONE;
|
||||
private boolean pendingWakeup;
|
||||
|
||||
IOUringEventLoop(IOUringEventLoopGroup parent, Executor executor, int ringSize, boolean ioseqAsync,
|
||||
RejectedExecutionHandler rejectedExecutionHandler, EventLoopTaskQueueFactory queueFactory) {
|
||||
@ -168,9 +167,7 @@ final class IOUringEventLoop extends SingleThreadEventLoop implements
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (nextWakeupNanos.get() == AWAKE || nextWakeupNanos.getAndSet(AWAKE) == AWAKE) {
|
||||
pendingWakeup = true;
|
||||
}
|
||||
nextWakeupNanos.set(AWAKE);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
handleLoopException(t);
|
||||
@ -224,7 +221,6 @@ final class IOUringEventLoop extends SingleThreadEventLoop implements
|
||||
public void handle(int fd, int res, int flags, int op, int data) {
|
||||
if (op == Native.IORING_OP_READ && eventfd.intValue() == fd) {
|
||||
if (res != Native.ERRNO_ECANCELED_NEGATIVE) {
|
||||
pendingWakeup = false;
|
||||
addEventFdRead(ringBuffer.ioUringSubmissionQueue());
|
||||
}
|
||||
} else if (op == Native.IORING_OP_TIMEOUT) {
|
||||
@ -251,7 +247,7 @@ final class IOUringEventLoop extends SingleThreadEventLoop implements
|
||||
}
|
||||
if (!channel.ioScheduled()) {
|
||||
// We cancelled the POLL ops which means we are done and should remove the mapping.
|
||||
channels.remove(fd);
|
||||
remove(channel);
|
||||
return;
|
||||
}
|
||||
} else if (op == Native.IORING_OP_CONNECT) {
|
||||
|
@ -48,9 +48,9 @@ final class IOUringSubmissionQueue {
|
||||
//these unsigned integer pointers(shared with the kernel) will be changed by the kernel
|
||||
private final long kHeadAddress;
|
||||
private final long kTailAddress;
|
||||
private final long fFlagsAdress;
|
||||
private final long kFlagsAddress;
|
||||
private final long kDroppedAddress;
|
||||
private final long arrayAddress;
|
||||
private final long kArrayAddress;
|
||||
final long submissionQueueArrayAddress;
|
||||
|
||||
final int ringEntries;
|
||||
@ -66,14 +66,14 @@ final class IOUringSubmissionQueue {
|
||||
private int tail;
|
||||
|
||||
IOUringSubmissionQueue(long kHeadAddress, long kTailAddress, long kRingMaskAddress, long kRingEntriesAddress,
|
||||
long fFlagsAdress, long kDroppedAddress, long arrayAddress, long submissionQueueArrayAddress,
|
||||
int ringSize, long ringAddress, int ringFd,
|
||||
long kFlagsAddress, long kDroppedAddress, long kArrayAddress,
|
||||
long submissionQueueArrayAddress, int ringSize, long ringAddress, int ringFd,
|
||||
boolean iosqeAsync, Runnable submissionCallback) {
|
||||
this.kHeadAddress = kHeadAddress;
|
||||
this.kTailAddress = kTailAddress;
|
||||
this.fFlagsAdress = fFlagsAdress;
|
||||
this.kFlagsAddress = kFlagsAddress;
|
||||
this.kDroppedAddress = kDroppedAddress;
|
||||
this.arrayAddress = arrayAddress;
|
||||
this.kArrayAddress = kArrayAddress;
|
||||
this.submissionQueueArrayAddress = submissionQueueArrayAddress;
|
||||
this.ringSize = ringSize;
|
||||
this.ringAddress = ringAddress;
|
||||
@ -90,7 +90,7 @@ final class IOUringSubmissionQueue {
|
||||
PlatformDependent.setMemory(submissionQueueArrayAddress, ringEntries * SQE_SIZE, (byte) 0);
|
||||
|
||||
// Fill SQ array indices (1-1 with SQE array) and set nonzero constant SQE fields
|
||||
long address = arrayAddress;
|
||||
long address = kArrayAddress;
|
||||
long sqeFlagsAddress = submissionQueueArrayAddress + SQE_FLAGS_FIELD;
|
||||
byte flag = iosqeAsync ? (byte) Native.IOSQE_ASYNC : 0;
|
||||
for (int i = 0; i < ringEntries; i++, address += INT_SIZE, sqeFlagsAddress += SQE_SIZE) {
|
||||
|
Loading…
Reference in New Issue
Block a user