etwist/server.py
branchstable
changeset 5652 904091dc4c7e
parent 5553 646737f80c88
child 5655 ef903fff826d
child 5660 97343804414b
equal deleted inserted replaced
5651:95f7285e85e2 5652:904091dc4c7e
    23 import sys
    23 import sys
    24 import os
    24 import os
    25 import select
    25 import select
    26 import errno
    26 import errno
    27 import traceback
    27 import traceback
       
    28 import threading
    28 from os.path import join
    29 from os.path import join
    29 from time import mktime
    30 from time import mktime
    30 from datetime import date, timedelta
    31 from datetime import date, timedelta
    31 from urlparse import urlsplit, urlunsplit
    32 from urlparse import urlsplit, urlunsplit
    32 from cgi import FieldStorage, parse_header
    33 from cgi import FieldStorage, parse_header
   405             from pwd import getpwnam
   406             from pwd import getpwnam
   406             uid = getpwnam(config['uid']).pw_uid
   407             uid = getpwnam(config['uid']).pw_uid
   407         os.setuid(uid)
   408         os.setuid(uid)
   408     root_resource.start_service()
   409     root_resource.start_service()
   409     logger.info('instance started on %s', root_resource.base_url)
   410     logger.info('instance started on %s', root_resource.base_url)
       
   411     # avoid annoying warnign if not in Main Thread
       
   412     signals = threading.currentThread().getName() == 'MainThread'
   410     if config['profile']:
   413     if config['profile']:
   411         import cProfile
   414         import cProfile
   412         cProfile.runctx('reactor.run()', globals(), locals(), config['profile'])
   415         cProfile.runctx('reactor.run(installSignalHandlers=%s)' % signals,
       
   416                         globals(), locals(), config['profile'])
   413     else:
   417     else:
   414         reactor.run()
   418         reactor.run(installSignalHandlers=signals)