@Override
	public void run() {
		while (!suspending) {
			// periodically increase the coreValue
			coreValue++;
			System.out.println("    coreValue = " + coreValue);
			try {
				Thread.sleep(1000);
			} catch(InterruptedException e) {
				System.err.println("Thread is interrupted when sleep for one second.");
		        System.exit(1);
			}
		}
		if (!suspending) {
			complete = true;
		}
		suspending = false;		
	}