void (int fileId, @NotNull VirtualFile file, @EventMask short mask) { while (true) { ChangeInfo existingChangeInfo = myChangeInfos.get(fileId); ChangeInfo newChangeInfo = new ChangeInfo(file, mask, existingChangeInfo); if(myChangeInfos.put(fileId, newChangeInfo) == existingChangeInfo) { myPublishedEventIndex.incrementAndGet(); break; } } }