1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.channel.uring;
17
18
19 final class RingBuffer {
20 private final SubmissionQueue ioUringSubmissionQueue;
21 private final CompletionQueue ioUringCompletionQueue;
22
23 RingBuffer(SubmissionQueue ioUringSubmissionQueue, CompletionQueue ioUringCompletionQueue) {
24 this.ioUringSubmissionQueue = ioUringSubmissionQueue;
25 this.ioUringCompletionQueue = ioUringCompletionQueue;
26 }
27
28 int fd() {
29 return ioUringCompletionQueue.ringFd;
30 }
31
32 SubmissionQueue ioUringSubmissionQueue() {
33 return this.ioUringSubmissionQueue;
34 }
35
36 CompletionQueue ioUringCompletionQueue() {
37 return this.ioUringCompletionQueue;
38 }
39
40 void close() {
41 ioUringSubmissionQueue.release();
42 Native.ioUringExit(
43 ioUringSubmissionQueue.submissionQueueArrayAddress,
44 ioUringSubmissionQueue.ringEntries,
45 ioUringSubmissionQueue.ringAddress,
46 ioUringSubmissionQueue.ringSize,
47 ioUringCompletionQueue.ringAddress,
48 ioUringCompletionQueue.ringSize,
49 ioUringCompletionQueue.ringFd);
50 }
51 }