diff --git a/src/main/java/com/aparapi/internal/kernel/KernelProfile.java b/src/main/java/com/aparapi/internal/kernel/KernelProfile.java index 77d1d669fa5235f1ad15d30eaaa10bfda0c6f2e7..933b3f2bb7d3a79c2c31037674963f1109d76b75 100644 --- a/src/main/java/com/aparapi/internal/kernel/KernelProfile.java +++ b/src/main/java/com/aparapi/internal/kernel/KernelProfile.java @@ -75,9 +75,12 @@ public class KernelProfile { */ void onStart(Device device) { KernelDeviceProfile currentDeviceProfile = deviceProfiles.get(device); - if (currentDeviceProfile == null) { + if (currentDeviceProfile == null) { currentDeviceProfile = new KernelDeviceProfile(this, kernelClass, device); - deviceProfiles.put(device, currentDeviceProfile); + KernelDeviceProfile existingProfile = deviceProfiles.putIfAbsent(device, currentDeviceProfile); + if (existingProfile != null) { + currentDeviceProfile = existingProfile; + } } currentDeviceProfile.onEvent(ProfilingEvent.START);