Concurrentes I.
[z.facultad/75.59/ejercicios.git] / ej1.9.py
1 #!/usr/bin/env python
2 # vim: set et sw=4 sts=4 ts=4
3
4 import os, time, sys, random
5
6 def fork_child():
7     pid = os.fork()
8     if not pid:
9         random.seed(time.time())
10         timeout = int(random.random() * 30)
11         # Hijo
12         print "HIJO: Voy a esperar", timeout, "segundos"
13         time.sleep(timeout)
14         sys.exit(timeout)
15
16 if __name__ == '__main__':
17     for i in xrange(int(sys.argv[1])):
18         fork_child()
19     for i in xrange(int(sys.argv[1])):
20         (pid, status) = os.wait()
21         timeout = os.WEXITSTATUS(status)
22         print "PADRE: Termino", pid, "despues de esperar", timeout, "segundos"
23