// set the active state
pin.setState(pulseState);
// create future job to return the pin to the low state
scheduledFuture = scheduledExecutorService
.schedule(new GpioPulseTaskImpl(pin, PinState.getInverseState(pulseState), callback), duration, TimeUnit.MILLISECONDS);
// get pending tasks for the current pin
ArrayList<ScheduledFuture<?>> tasks;
if (!pinTaskQueue.containsKey(pin)) {
pinTaskQueue.put(pin, new ArrayList<ScheduledFuture<?>>());