core: remove reset() from SharedQueue API

This commit is contained in:
Bert Belder 2019-03-15 20:49:41 +01:00
parent bb642e8c7c
commit 62761a4e3a
No known key found for this signature in database
GPG key ID: 7A77887B2E2ED461
4 changed files with 38 additions and 34 deletions

View file

@ -22,7 +22,8 @@
}
function reset() {
shared32.fill(0, 0, INDEX_RECORDS);
shared32[INDEX_NUM_RECORDS] = 0;
shared32[INDEX_NUM_SHIFTED_OFF] = 0;
shared32[INDEX_HEAD] = HEAD_INIT;
}
@ -34,6 +35,10 @@
return shared32[INDEX_NUM_RECORDS];
}
function size() {
return shared32[INDEX_NUM_RECORDS] - shared32[INDEX_NUM_SHIFTED_OFF];
}
function setEnd(index, end) {
shared32[INDEX_OFFSETS + index] = end;
}
@ -77,17 +82,21 @@
/// Returns null if empty.
function shift() {
let i = shared32[INDEX_NUM_SHIFTED_OFF];
if (i >= numRecords()) {
if (size() == 0) {
assert(i == 0);
return null;
}
let off = getOffset(i);
let end = getEnd(i);
shared32[INDEX_NUM_SHIFTED_OFF] += 1;
return sharedBytes.subarray(off, end);
}
function size() {
return shared32[INDEX_NUM_RECORDS] - shared32[INDEX_NUM_SHIFTED_OFF];
if (size() > 1) {
shared32[INDEX_NUM_SHIFTED_OFF] += 1;
} else {
reset();
}
return sharedBytes.subarray(off, end);
}
let asyncHandler = null;
@ -119,7 +128,6 @@
numRecords,
size,
push,
reset,
shift
};