MCPcopy
hub / github.com/questdb/questdb / IOURingImpl

Method IOURingImpl

core/src/main/java/io/questdb/std/IOURingImpl.java:55–83  ·  view source on GitHub ↗
(IOURingFacade facade, int capacity)

Source from the content-addressed store, hash-verified

53 private long idSeq;
54
55 public IOURingImpl(IOURingFacade facade, int capacity) {
56 assert Numbers.isPow2(capacity);
57 this.facade = facade;
58 final long res = facade.create(capacity);
59 if (res < 0) {
60 throw CairoException.critical((int) -res).put("Cannot create io_uring instance");
61 }
62 this.ringAddr = res;
63
64 int ringFd = Unsafe.getInt(ringAddr + RING_FD_OFFSET);
65
66 this.sqesAddr = Unsafe.getLong(ringAddr + SQ_SQES_OFFSET);
67 this.sqKheadAddr = Unsafe.getLong(ringAddr + SQ_KHEAD_OFFSET);
68 final long sqMaskAddr = Unsafe.getLong(ringAddr + SQ_KRING_MASK_OFFSET);
69 this.sqKringMask = Unsafe.getInt(sqMaskAddr);
70 final long sqEntriesAddr = Unsafe.getLong(ringAddr + SQ_KRING_ENTRIES_OFFSET);
71 this.sqKringEntries = Unsafe.getInt(sqEntriesAddr);
72
73 this.cqesAddr = Unsafe.getLong(ringAddr + CQ_CQES_OFFSET);
74 this.cqKheadAddr = Unsafe.getLong(ringAddr + CQ_KHEAD_OFFSET);
75 this.cqKtailAddr = Unsafe.getLong(ringAddr + CQ_KTAIL_OFFSET);
76 final long cqMaskAddr = Unsafe.getLong(ringAddr + CQ_KRING_MASK_OFFSET);
77 this.cqKringMask = Unsafe.getInt(cqMaskAddr);
78 final long cqEntriesAddr = Unsafe.getLong(ringAddr + CQ_KRING_ENTRIES_OFFSET);
79 int cqKringEntries = Unsafe.getInt(cqEntriesAddr);
80 cachedCqes = new long[2 * cqKringEntries];
81
82 this.ringFd = Files.createUniqueFd(ringFd);
83 }
84
85 @Override
86 public void close() {

Callers

nothing calls this directly

Calls 7

isPow2Method · 0.95
criticalMethod · 0.95
getIntMethod · 0.95
getLongMethod · 0.95
createUniqueFdMethod · 0.95
createMethod · 0.65
putMethod · 0.65

Tested by

no test coverage detected