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 private final int features;
23 RingBuffer(SubmissionQueue ioUringSubmissionQueue, CompletionQueue ioUringCompletionQueue, int features) {
24 this.ioUringSubmissionQueue = ioUringSubmissionQueue;
25 this.ioUringCompletionQueue = ioUringCompletionQueue;
26 this.features = features;
27 }
28
29 int fd() {
30 return ioUringCompletionQueue.ringFd;
31 }
32
33 int features() {
34 return features;
35 }
36
37 SubmissionQueue ioUringSubmissionQueue() {
38 return this.ioUringSubmissionQueue;
39 }
40
41 CompletionQueue ioUringCompletionQueue() {
42 return this.ioUringCompletionQueue;
43 }
44
45 void close() {
46 ioUringSubmissionQueue.release();
47 Native.ioUringExit(
48 ioUringSubmissionQueue.submissionQueueArrayAddress,
49 ioUringSubmissionQueue.ringEntries,
50 ioUringSubmissionQueue.ringAddress,
51 ioUringSubmissionQueue.ringSize,
52 ioUringCompletionQueue.ringAddress,
53 ioUringCompletionQueue.ringSize,
54 ioUringCompletionQueue.ringFd);
55 }
56 }