/* * Copyright (c) 2012 EMC Corporation * All Rights Reserved */ package com.emc.storageos.systemservices; import org.junit.Test; import com.emc.storageos.services.util.Waiter; class Sleeper implements Runnable { private final Waiter _waiter; private final long _startTimeMillis; public Sleeper(final Waiter waiter) { _waiter = waiter; _startTimeMillis = System.currentTimeMillis(); } public void run() { for (int i = 0; i < 5; i++) { System.out.println("A: sleep(1000): " + (System.currentTimeMillis() - _startTimeMillis)); _waiter.sleep(1000); } } } public class WaiterTest { @Test public void waiterTest() { final Waiter waiter = new Waiter(); Thread t = new Thread(new Sleeper(waiter)); t.start(); try { Thread.sleep(100); t.interrupt(); Thread.sleep(400); System.out.println("B: wakeup"); waiter.wakeup(); Thread.sleep(2500); System.out.println("B: wakeup"); waiter.wakeup(); } catch (Exception e) { System.out.println("B: " + e); } } }