VOL-2263: Issues with creating itu-pon-alloc object

- Wait for asynchronous ITU PON Alloc Configuration Completed
  indication before reporting the response to CreateSched/RemoveSched
  from voltha.

Change-Id: I56a06970625e891e197ff9d87e02d73b06070af5
diff --git a/agent/common/Queue.h b/agent/common/Queue.h
index 30fbbda..2e366ce 100644
--- a/agent/common/Queue.h
+++ b/agent/common/Queue.h
@@ -18,17 +18,21 @@
 {
  public:
 
-  std::pair<T, bool> pop(int timeout)
+  // timeout is in milliseconds, wait_granularity in milliseconds
+  std::pair<T, bool> pop(int timeout, int wait_granularity=10)
   {
     std::cv_status status = std::cv_status::no_timeout;
     std::unique_lock<std::mutex> mlock(mutex_);
     static int duration = 0;
+    if (timeout < wait_granularity) {
+        wait_granularity = timeout;
+    }
     while (queue_.empty())
     {
-      status = cond_.wait_for(mlock, std::chrono::seconds(1));
+      status = cond_.wait_for(mlock, std::chrono::milliseconds(wait_granularity));
       if (status == std::cv_status::timeout)
       {
-        duration++;
+        duration+=wait_granularity;
         if (duration > timeout)
         {
           duration = 0;