public synchronized Collection<ModuleDeploymentStatus> getResults() throws InterruptedException {
			long now = System.currentTimeMillis();
			long expiryTime = now + deploymentTimeout;
			while (pending.size() > 0 && now < expiryTime) {
				wait(expiryTime - now);
				now = System.currentTimeMillis();
			}

			// if there are any module descriptors in the pending set,
			// this means the ZooKeeper node for that module deployment
			// was never updated
			for (ContainerModuleKey key : pending) {
				results.put(key,
						new ModuleDeploymentStatus(key.container, Integer.valueOf(key.moduleSequence),
								key.moduleDescriptorKey,
								ModuleDeploymentStatus.State.failed,
								String.format("Deployment of module '%s' to container '%s' timed out after %d ms",
										key.moduleDescriptorKey, key.container, deploymentTimeout)));
			}
			return results.values();
		}
Block until all:
<ul>
    <li>All pending requests have been responded to.</li>
    <li>A timeout occurs; in this case a collection of
    {@link ModuleDeploymentStatus}
    is returned. These results can be examined to see which container(s)
    timed out.</li>
    <li>The thread invoking this method is interrupted.</li>
</ul>

@return collection of results
@throws InterruptedException
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/server/admin/deployment/zk/ModuleDeploymentWriter.java