  
 -        result_queue = multiprocessing.Queue()
 -        event_queue = multiprocessing.Queue()
-+        result_queue = multiprocessing.SimpleQueue()
-+        event_queue = multiprocessing.SimpleQueue()
++        result_queue = queue.Queue()
++        event_queue = queue.Queue()
  
          def worker_args_gen(concurrency_overhead):
              while True:
-@@ -340,3 +367,4 @@ class ConstantForDurationScenarioRunner(runner.ScenarioRunner):
-             processes_to_start, _worker_process,
-             worker_args_gen(concurrency_overhead))
-         self._join_processes(process_pool, result_queue, event_queue)
-+
 diff --git a/rally/plugins/task/runners/rps.py b/rally/plugins/task/runners/rps.py
-index 98a706d11..74ccfae94 100644
+index 98a706d11..26b55feab 100644
 --- a/rally/plugins/task/runners/rps.py
 +++ b/rally/plugins/task/runners/rps.py
+@@ -15,7 +15,7 @@
+ 
+ import collections
+ import multiprocessing
+-import queue as Queue
++import queue
+ import threading
+ import time
+ 
+@@ -69,7 +69,7 @@ def _worker_process(queue, iteration_gen, timeout, times, max_concurrent,
+         (sleep * info["processes_counter"]) / info["processes_to_start"])
+ 
+     start = time.time()
+-    timeout_queue = Queue.Queue()
++    timeout_queue = queue.Queue()
+ 
+     if timeout:
+         collector_thr_by_timeout = threading.Thread(
 @@ -260,8 +260,8 @@ class RPSScenarioRunner(runner.ScenarioRunner):
                               concurrency_per_worker=concurrency_per_worker,
                               concurrency_overhead=concurrency_overhead)
  
 -        result_queue = multiprocessing.Queue()
 -        event_queue = multiprocessing.Queue()
-+        result_queue = multiprocessing.SimpleQueue()
-+        event_queue = multiprocessing.SimpleQueue()
++        result_queue = queue.Queue()
++        event_queue = queue.Queue()
  
          def worker_args_gen(times_overhead, concurrency_overhead):
              """Generate arguments for process worker.

 
-        result_queue = multiprocessing.Queue()
-        event_queue = multiprocessing.Queue()
+        result_queue = multiprocessing.SimpleQueue()
+        event_queue = multiprocessing.SimpleQueue()
 
         def worker_args_gen(concurrency_overhead):
             while True:

Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
---
 rally/cli/main.py                             |  6 +++
 rally/plugins/task/runners/constant.py        | 41 +++++++++++++++----
 rally/plugins/task/runners/rps.py             |  8 ++--
 .../task/scenarios/requests/http_requests.py  |  9 ++++
 .../plugins/task/scenarios/requests/utils.py  |  9 ++++
 rally/task/runner.py                          | 29 +++++++++++--
 rally/task/utils.py                           | 15 +++++++
 7 files changed, 102 insertions(+), 15 deletions(-)

diff --git a/rally/cli/main.py b/rally/cli/main.py
index 235a57113..d931924d8 100644
