public synchronized <T extends MetricsSource> T register(final String name,
final String desc, final T source) {
if (this.monitoring) {
registerSource(name, desc, source);
} register(new MetricsSystem.AbstractCallback() {
public void postStart() {
MetricsSystemImpl.this.registerSource(name, desc,
source);
} });
return source;
}