
import stackless
import stacklesssocket
from SimpleXMLRPCServer import SimpleXMLRPCServer

def ping():
    print "ping"
    return "pong"

def timeout_func(timeout, channel, error):
    print "Timeout happened"

def run_server():
    stacklesssocket.install()
    stacklesssocket._timeout_func = timeout_func

    server = SimpleXMLRPCServer(("localhost", 8888), allow_none=True)
    server.register_function(ping, "ping")
    server.serve_forever()

if __name__ == "__main__":
    stackless.tasklet(run_server)()
    stackless.run()
