code: public WeakReference<ProfileReport> getProfileReportLastThread(Device device) {
  	   KernelProfile profile = KernelManager.instance().getProfile(getClass());
  	   KernelDeviceProfile deviceProfile = null;
  	   boolean hasObserver = false;
  	   synchronized (profile) {
  		   if (profile.getReportObserver() != null) {
  			   hasObserver = true;
  		   }
  		   deviceProfile = profile.getDeviceProfile(device);
  	   }
  
  	   if (hasObserver) {
  		   return null;
  	   }
  	   
  	   return deviceProfile.getReportLastThread();
     }
docs: Retrieves a profile report for the last thread that executed this kernel on the given device.
  A report will only be available if at least one thread executed the kernel on the device.
  <br/>
  <b>Note1: </b>If the profile report is intended to be kept in memory, the object should be cloned with
  {@link com.aparapi.ProfileReport#clone()}<br/>
  
  @param device the relevant device where the kernel executed
  
  @return <ul><li>the profiling report for the current most recent execution</li>
  <li>null, if no profiling report is available for such thread</li></ul>
  
  @see #getProfileReportCurrentThread(Device)
  @see #registerProfileReportObserver(IProfileReportObserver)
  @see #getAccumulatedExecutionTimeAllThreads(Device)
  
  @see #getExecutionTimeLastThread()
  @see #getConversionTimeLastThread()