equal
deleted
inserted
replaced
9 |
9 |
10 import sys |
10 import sys |
11 import os |
11 import os |
12 import select |
12 import select |
13 import errno |
13 import errno |
14 import hotshot |
|
15 from time import mktime |
14 from time import mktime |
16 from datetime import date, timedelta |
15 from datetime import date, timedelta |
17 from urlparse import urlsplit, urlunsplit |
16 from urlparse import urlsplit, urlunsplit |
18 |
17 |
19 from twisted.internet import reactor, task, threads |
18 from twisted.internet import reactor, task, threads |
111 # when we have an in-memory repository, clean unused sessions every XX |
110 # when we have an in-memory repository, clean unused sessions every XX |
112 # seconds and properly shutdown the server |
111 # seconds and properly shutdown the server |
113 if config.repo_method == 'inmemory': |
112 if config.repo_method == 'inmemory': |
114 reactor.addSystemEventTrigger('before', 'shutdown', |
113 reactor.addSystemEventTrigger('before', 'shutdown', |
115 self.shutdown_event) |
114 self.shutdown_event) |
116 # monkey patch start_looping_task to get proper reactor integration |
|
117 #self.appli.repo.__class__.start_looping_tasks = start_looping_tasks |
|
118 if config.pyro_enabled(): |
115 if config.pyro_enabled(): |
119 # if pyro is enabled, we have to register to the pyro name |
116 # if pyro is enabled, we have to register to the pyro name |
120 # server, create a pyro daemon, and create a task to handle pyro |
117 # server, create a pyro daemon, and create a task to handle pyro |
121 # requests |
118 # requests |
122 self.pyro_daemon = self.appli.repo.pyro_register() |
119 self.pyro_daemon = self.appli.repo.pyro_register() |
494 uid = getpwnam(config['uid']).pw_uid |
491 uid = getpwnam(config['uid']).pw_uid |
495 os.setuid(uid) |
492 os.setuid(uid) |
496 root_resource.start_service() |
493 root_resource.start_service() |
497 logger.info('instance started on %s', root_resource.base_url) |
494 logger.info('instance started on %s', root_resource.base_url) |
498 if config['profile']: |
495 if config['profile']: |
499 prof = hotshot.Profile(config['profile']) |
496 import cProfile |
500 prof.runcall(reactor.run) |
497 cProfile.runctx('reactor.run()', globals(), locals(), config['profile']) |
501 else: |
498 else: |
502 reactor.run() |
499 reactor.run() |