@Override public boolean apply(GridEvent e) { // Detects that events were lost. if (!lastFound.get() && (lastOrder == e.localOrder())) lastFound.set(true); // Retains events by lastOrder, period and type. return e.localOrder() > lastOrder && e.timestamp() > notOlderThan && (all ? F.contains(VISOR_ALL_EVTS, e.type()) : F.contains(VISOR_NON_TASK_EVTS, e.type())); } };
@Override public boolean apply(GridEvent event) { return event.localOrder() > startEvtOrder && (arg.typeArgument() == null || F.contains(arg.typeArgument(), event.type())) && event.timestamp() >= startEvtTime && (arg.taskName() == null || filterByTaskName(event, arg.taskName())) && (arg.taskSessionId() == null || filterByTaskSessionId(event, arg.taskSessionId())); } });
String name = e.name(); UUID nid = e.node().id(); long t = e.timestamp(); String msg = e.message(); String shortDisplay = e.shortDisplay();
String name = e.name(); UUID nid = e.node().id(); long t = e.timestamp(); String msg = e.message(); String shortDisplay = e.shortDisplay();
/** * Method cleans up all events that either outnumber queue size * or exceeds time-to-live value. It does none if someone else * cleans up queue (lock is locked) or if there are queue readers * (readersNum > 0). */ private void cleanupQueue() { long now = U.currentTimeMillis(); long queueOversize = evts.sizex() - expireCnt; for (int i = 0; i < queueOversize && evts.sizex() > expireCnt; i++) { GridEvent expired = evts.poll(); if (log.isDebugEnabled()) log.debug("Event expired by count: " + expired); } while (true) { ConcurrentLinkedDeque8.Node<GridEvent> node = evts.peekx(); if (node == null) // Queue is empty. break; GridEvent evt = node.item(); if (evt == null) // Competing with another thread. continue; if (now - evt.timestamp() < expireAgeMs) break; if (evts.unlinkx(node) && log.isDebugEnabled()) log.debug("Event expired by age: " + node.item()); } }