/** * Register the shutdown hook if needed. */ private synchronized void registerShutdownHookIfNeeded() { if (shutdownHook != null) { return; } shutdownHook = new SpanReceiverShutdownHook(); Runtime.getRuntime().addShutdownHook(shutdownHook); LOG.trace(toString() + ": registered shutdown hook."); }
/** * Register the shutdown hook if needed. */ private synchronized void registerShutdownHookIfNeeded() { if (shutdownHook != null) { return; } shutdownHook = new SpanReceiverShutdownHook(); Runtime.getRuntime().addShutdownHook(shutdownHook); LOG.trace(toString() + ": registered shutdown hook."); }
/** * Register the shutdown hook if needed. */ private synchronized void registerShutdownHookIfNeeded() { if (shutdownHook != null) { return; } shutdownHook = new SpanReceiverShutdownHook(); Runtime.getRuntime().addShutdownHook(shutdownHook); LOG.trace(toString() + ": registered shutdown hook."); }
/** * Remove and close all of the span receivers. */ private synchronized void removeAndCloseAllSpanReceivers() { SpanReceiver[] receivers = curReceivers; curReceivers = new SpanReceiver[0]; for (SpanReceiver receiver : receivers) { try { LOG.trace(toString() + ": closing receiver " + receiver.toString()); receiver.close(); } catch (Throwable t) { LOG.error(toString() + ": error closing " + receiver.toString(), t); } } }
/** * Add a new Tracer. */ synchronized void addTracer(Tracer tracer) { if (curTracers.add(tracer)) { LOG.trace(toString() + ": adding tracer " + tracer.toString()); } }
/** * Remove and close all of the span receivers. */ private synchronized void removeAndCloseAllSpanReceivers() { SpanReceiver[] receivers = curReceivers; curReceivers = new SpanReceiver[0]; for (SpanReceiver receiver : receivers) { try { LOG.trace(toString() + ": closing receiver " + receiver.toString()); receiver.close(); } catch (Throwable t) { LOG.error(toString() + ": error closing " + receiver.toString(), t); } } }
/** * Remove and close all of the span receivers. */ private synchronized void removeAndCloseAllSpanReceivers() { SpanReceiver[] receivers = curReceivers; curReceivers = new SpanReceiver[0]; for (SpanReceiver receiver : receivers) { try { LOG.trace(toString() + ": closing receiver " + receiver.toString()); receiver.close(); } catch (Throwable t) { LOG.error(toString() + ": error closing " + receiver.toString(), t); } } }
/** * Remove a span receiver. * * @param receiver The receiver to remove. * * @return True if the receiver was removed; false if it * did not exist in this pool. */ public synchronized boolean removeReceiver(SpanReceiver receiver) { SpanReceiver[] receivers = curReceivers; int j = 0; for (int i = 0; i < receivers.length; i++) { if (receivers[i] == receiver) { SpanReceiver[] newReceivers = new SpanReceiver[receivers.length - 1]; System.arraycopy(receivers, 0, newReceivers, 0, i); System.arraycopy(receivers, i + 1, newReceivers, i, receivers.length - i - 1); curReceivers = newReceivers; LOG.trace(toString() + ": removed receiver " + receiver.toString()); return true; } } LOG.trace(toString() + ": can't remove receiver " + receiver.toString() + " since it's not currently in this pool."); return false; }
/** * Remove a span receiver. * * @param receiver The receiver to remove. * * @return True if the receiver was removed; false if it * did not exist in this pool. */ public synchronized boolean removeReceiver(SpanReceiver receiver) { SpanReceiver[] receivers = curReceivers; for (int i = 0; i < receivers.length; i++) { if (receivers[i] == receiver) { SpanReceiver[] newReceivers = new SpanReceiver[receivers.length - 1]; System.arraycopy(receivers, 0, newReceivers, 0, i); System.arraycopy(receivers, i + 1, newReceivers, i, receivers.length - i - 1); curReceivers = newReceivers; LOG.trace(toString() + ": removed receiver " + receiver.toString()); return true; } } LOG.trace(toString() + ": can't remove receiver " + receiver.toString() + " since it's not currently in this pool."); return false; }
/** * Add a new Tracer. */ synchronized void addTracer(Tracer tracer) { if (curTracers.add(tracer)) { LOG.trace(toString() + ": adding tracer " + tracer.toString()); } }
/** * Remove a span receiver. * * @param receiver The receiver to remove. * * @return True if the receiver was removed; false if it * did not exist in this pool. */ public synchronized boolean removeReceiver(SpanReceiver receiver) { SpanReceiver[] receivers = curReceivers; for (int i = 0; i < receivers.length; i++) { if (receivers[i] == receiver) { SpanReceiver[] newReceivers = new SpanReceiver[receivers.length - 1]; System.arraycopy(receivers, 0, newReceivers, 0, i); System.arraycopy(receivers, i + 1, newReceivers, i, receivers.length - i - 1); curReceivers = newReceivers; LOG.trace(toString() + ": removed receiver " + receiver.toString()); return true; } } LOG.trace(toString() + ": can't remove receiver " + receiver.toString() + " since it's not currently in this pool."); return false; }
/** * Add a new Tracer. */ synchronized void addTracer(Tracer tracer) { if (curTracers.add(tracer)) { LOG.trace(toString() + ": adding tracer " + tracer.toString()); } }
/** * Add a new span receiver. * * @param receiver The new receiver to add. * * @return True if the new receiver was added; false if it * already was there. */ public synchronized boolean addReceiver(SpanReceiver receiver) { SpanReceiver[] receivers = curReceivers; for (int i = 0; i < receivers.length; i++) { if (receivers[i] == receiver) { LOG.trace(toString() + ": can't add receiver " + receiver.toString() + " since it is already in this pool."); return false; } } SpanReceiver[] newReceivers = Arrays.copyOf(receivers, receivers.length + 1); newReceivers[receivers.length] = receiver; registerShutdownHookIfNeeded(); curReceivers = newReceivers; LOG.trace(toString() + ": added receiver " + receiver.toString()); return true; }
/** * Add a new span receiver. * * @param receiver The new receiver to add. * * @return True if the new receiver was added; false if it * already was there. */ public synchronized boolean addReceiver(SpanReceiver receiver) { SpanReceiver[] receivers = curReceivers; int j = 0; for (int i = 0; i < receivers.length; i++) { if (receivers[i] == receiver) { LOG.trace(toString() + ": can't add receiver " + receiver.toString() + " since it is already in this pool."); return false; } } SpanReceiver[] newReceivers = Arrays.copyOf(receivers, receivers.length + 1); newReceivers[receivers.length] = receiver; registerShutdownHookIfNeeded(); curReceivers = newReceivers; LOG.trace(toString() + ": added receiver " + receiver.toString()); return true; }
/** * Remove a Tracer. * * If the Tracer removed was the last one, we will close all the SpanReceiver * objects that we're managing. */ synchronized void removeTracer(Tracer tracer) { if (curTracers.remove(tracer)) { LOG.trace(toString() + ": removing tracer " + tracer.toString()); if (curTracers.size() == 0) { removeAndCloseAllSpanReceivers(); } } }
/** * Remove a Tracer. * * If the Tracer removed was the last one, we will close all the SpanReceiver * objects that we're managing. */ synchronized void removeTracer(Tracer tracer) { if (curTracers.remove(tracer)) { LOG.trace(toString() + ": removing tracer " + tracer.toString()); if (curTracers.size() == 0) { removeAndCloseAllSpanReceivers(); } } }
/** * Remove and close a span receiver. * * @param receiver The receiver to remove. * * @return True if the receiver was removed; false if it * did not exist in this pool. */ public boolean removeAndCloseReceiver(SpanReceiver receiver) { if (!removeReceiver(receiver)) { return false; } try { LOG.trace(toString() + ": closing receiver " + receiver.toString()); receiver.close(); } catch (Throwable t) { LOG.error(toString() + ": error closing " + receiver.toString(), t); } return true; }
/** * Remove a Tracer. * * If the Tracer removed was the last one, we will close all the SpanReceiver * objects that we're managing. */ synchronized void removeTracer(Tracer tracer) { if (curTracers.remove(tracer)) { LOG.trace(toString() + ": removing tracer " + tracer.toString()); if (curTracers.size() == 0) { removeAndCloseAllSpanReceivers(); } } }
/** * Remove and close a span receiver. * * @param receiver The receiver to remove. * * @return True if the receiver was removed; false if it * did not exist in this pool. */ public boolean removeAndCloseReceiver(SpanReceiver receiver) { if (!removeReceiver(receiver)) { return false; } try { LOG.trace(toString() + ": closing receiver " + receiver.toString()); receiver.close(); } catch (Throwable t) { LOG.error(toString() + ": error closing " + receiver.toString(), t); } return true; }
/** * Remove and close a span receiver. * * @param receiver The receiver to remove. * * @return True if the receiver was removed; false if it * did not exist in this pool. */ public boolean removeAndCloseReceiver(SpanReceiver receiver) { if (!removeReceiver(receiver)) { return false; } try { LOG.trace(toString() + ": closing receiver " + receiver.toString()); receiver.close(); } catch (Throwable t) { LOG.error(toString() + ": error closing " + receiver.toString(), t); } return true; }