void detachLogicalNode(@Nonnull Address address, @Min(128) @Max(8192) int logicalNodeId) {
while (true) {
Object[] assignmentTable = this.assignmentTable;
Address addressOnSlot = (Address) assignmentTable[logicalNodeId];
if (addressOnSlot == null) {
break;
}
if (!address.equals(addressOnSlot)) {
throw exception(SnowcastIllegalStateException::new, ILLEGAL_DETACH_ATTEMPT);
}
long offset = offset(logicalNodeId);
if (UNSAFE.compareAndSwapObject(assignmentTable, offset, addressOnSlot, null)) {
break;
}
}
}
LogicalNodeTable.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:snowcast
作者:
评论列表
文章目录