diff --git a/functional/test_reload_on_sighup.py b/functional/test_reload_on_sighup.py
index f987882..f149a58 100644
--- a/functional/test_reload_on_sighup.py
+++ b/functional/test_reload_on_sighup.py
@@ -10,6 +10,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import time
+
 import eventlet
 
 from oslo_concurrency import processutils
@@ -67,11 +69,18 @@
         self._set_config_value(service, 'workers', new_workers)
         cmd = "kill -HUP %s" % pre_reload_parent
         processutils.execute(cmd, shell=True)
-        # wait till heat-api reloads
-        eventlet.sleep(2)
 
-        post_reload_parent, post_reload_children = self._get_heat_api_pids(
-            service)
+        # wait till heat-api reloads
+        start_time = time.time()
+        while time.time() - start_time < self.conf.sighup_timeout:
+            post_reload_parent, post_reload_children = self._get_heat_api_pids(
+                service)
+            intersect = set(post_reload_children) & set(pre_reload_children)
+            if (new_workers == len(post_reload_children)
+                and pre_reload_parent == post_reload_parent
+                    and intersect == set()):
+                break
+            eventlet.sleep(1)
         self.assertEqual(pre_reload_parent, post_reload_parent)
         self.assertEqual(new_workers, len(post_reload_children))
         # test if all child processes are newly created
