#!/usr/bin/python -t # Copyright (c) 2014 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import sys import threading import time import common from autotest_lib.site_utils.lib import infra from autotest_lib.site_utils.stats import registry def main(): """ Runs all of the registered functions in stats/ """ threads = [] pollers = registry.registered_functions() for sam in infra.sam_servers(): for f in pollers.get('sam', []): threads.append(threading.Thread(target=f, args=(sam,))) for drone in infra.drone_servers(): for f in pollers.get('drone', []): threads.append(threading.Thread(target=f, args=(drone,))) for devserver in infra.devserver_servers(): for f in pollers.get('devserver', []): threads.append(threading.Thread(target=f, args=(devserver,))) for f in pollers.get(None, []): threads.append(threading.Thread(target=f)) for thread in threads: thread.daemon = True thread.start() # Now we want to stay responsive to ctrl-c, so we need to just idle the main # thread. If we notice that all of our threads disappeared though, there's # no point in continuing to run. while threading.active_count() > 0: time.sleep(1) if __name__ == '__main__': sys.exit(main())