/* * Copyright 2012 Phil Pratt-Szeliga and other contributors * http://chirrup.org/ * * See the file LICENSE for copying permission. */ package org.trifort.rootbeer.testcases.rootbeertest.gpurequired; import java.util.concurrent.atomic.AtomicLong; import org.trifort.rootbeer.runtime.Kernel; public class WhileTrueRunOnGpu implements Kernel { private AtomicLong m_along; private volatile long m_threadId; public WhileTrueRunOnGpu(AtomicLong along, long id){ m_along = along; m_threadId = id; } public void gpuMethod() { int count = 0; while(count < 100){ count++; if(count > 95 && m_threadId != -1){ count = 0; } long last = m_along.get(); if(m_along.compareAndSet(last, last + 1)){ count = 200; } } } public AtomicLong get(){ return m_along; } }