private CachedObservers getObservers(T event) { Class<?> runtimeType = event.getClass(); CachedObservers lastResolvedObservers = this.lastCachedObservers; // fast track for cases when the same type is used repeatedly if (lastResolvedObservers != null && lastResolvedObservers.rawType.equals(runtimeType)) { return lastResolvedObservers; } lastResolvedObservers = cachedObservers.get(runtimeType); if (lastResolvedObservers == null) { // this is not atomic and less elegant than computeIfAbsent but is faster and atomicity does not really matter here // as createCachedObservers() does not have any side effects lastResolvedObservers = putIfAbsent(cachedObservers, runtimeType, createCachedObservers(runtimeType)); } return this.lastCachedObservers = lastResolvedObservers; }
private CachedObservers getObservers(T event) { Class<?> runtimeType = event.getClass(); CachedObservers lastResolvedObservers = this.lastCachedObservers; // fast track for cases when the same type is used repeatedly if (lastResolvedObservers != null && lastResolvedObservers.rawType.equals(runtimeType)) { return lastResolvedObservers; } lastResolvedObservers = cachedObservers.get(runtimeType); if (lastResolvedObservers == null) { // this is not atomic and less elegant than computeIfAbsent but is faster and atomicity does not really matter here // as createCachedObservers() does not have any side effects lastResolvedObservers = putIfAbsent(cachedObservers, runtimeType, createCachedObservers(runtimeType)); } return this.lastCachedObservers = lastResolvedObservers; }
private CachedObservers getObservers(T event) { Class<?> runtimeType = event.getClass(); CachedObservers lastResolvedObservers = this.lastCachedObservers; // fast track for cases when the same type is used repeatedly if (lastResolvedObservers != null && lastResolvedObservers.rawType.equals(runtimeType)) { return lastResolvedObservers; } lastResolvedObservers = cachedObservers.get(runtimeType); if (lastResolvedObservers == null) { // this is not atomic and less elegant than computeIfAbsent but is faster and atomicity does not really matter here // as createCachedObservers() does not have any side effects lastResolvedObservers = putIfAbsent(cachedObservers, runtimeType, createCachedObservers(runtimeType)); } return this.lastCachedObservers = lastResolvedObservers; }
private CachedObservers getObservers(T event) { Class<?> runtimeType = event.getClass(); CachedObservers lastResolvedObservers = this.lastCachedObservers; // fast track for cases when the same type is used repeatedly if (lastResolvedObservers != null && lastResolvedObservers.rawType.equals(runtimeType)) { return lastResolvedObservers; } lastResolvedObservers = cachedObservers.get(runtimeType); if (lastResolvedObservers == null) { // this is not atomic and less elegant than computeIfAbsent but is faster and atomicity does not really matter here // as createCachedObservers() does not have any side effects lastResolvedObservers = putIfAbsent(cachedObservers, runtimeType, createCachedObservers(runtimeType)); } return this.lastCachedObservers = lastResolvedObservers; }
private CachedObservers getObservers(T event) { Class<?> runtimeType = event.getClass(); CachedObservers lastResolvedObservers = this.lastCachedObservers; // fast track for cases when the same type is used repeatedly if (lastResolvedObservers != null && lastResolvedObservers.rawType.equals(runtimeType)) { return lastResolvedObservers; } lastResolvedObservers = cachedObservers.get(runtimeType); if (lastResolvedObservers == null) { // this is not atomic and less elegant than computeIfAbsent but is faster and atomicity does not really matter here // as createCachedObservers() does not have any side effects lastResolvedObservers = putIfAbsent(cachedObservers, runtimeType, createCachedObservers(runtimeType)); } return this.lastCachedObservers = lastResolvedObservers; }
private CachedObservers getObservers(T event) { Class<?> runtimeType = event.getClass(); CachedObservers lastResolvedObservers = this.lastCachedObservers; // fast track for cases when the same type is used repeatedly if (lastResolvedObservers != null && lastResolvedObservers.rawType.equals(runtimeType)) { return lastResolvedObservers; } lastResolvedObservers = cachedObservers.get(runtimeType); if (lastResolvedObservers == null) { // this is not atomic and less elegant than computeIfAbsent but is faster and atomicity does not really matter here // as createCachedObservers() does not have any side effects lastResolvedObservers = putIfAbsent(cachedObservers, runtimeType, createCachedObservers(runtimeType)); } return this.lastCachedObservers = lastResolvedObservers; }