Add python-eventlet package to MOS 8.0 repository
[packages/trusty/python-eventlet.git] / python-eventlet / benchmarks / hub_timers.py
1 #! /usr/bin/env python
2 from __future__ import print_function
3
4 # test timer adds & expires on hubs.hub.BaseHub
5
6 import sys
7 import eventlet
8 import random
9 import time
10
11 from eventlet.hubs import timer, get_hub
12 from eventlet.support import six
13
14
15 timer_count = 100000
16
17 if len(sys.argv) >= 2:
18     timer_count = int(sys.argv[1])
19
20 l = []
21
22
23 def work(n):
24     l.append(n)
25
26 timeouts = [random.uniform(0, 10) for x in six.moves.range(timer_count)]
27
28 hub = get_hub()
29
30 start = time.time()
31
32 scheduled = []
33
34 for timeout in timeouts:
35     t = timer.Timer(timeout, work, timeout)
36     t.schedule()
37
38     scheduled.append(t)
39
40 hub.prepare_timers()
41 hub.fire_timers(time.time() + 11)
42 hub.prepare_timers()
43
44 end = time.time()
45
46 print("Duration: %f" % (end - start,))