]> code.delx.au - pymsnt/blobdiff - src/main.py
Improved reactor autodetection.
[pymsnt] / src / main.py
index dfeded8c5a11fb2b7ba66f32f73d0cf5005e55a0..4de6f428a294fcad787d92829fb749621ca695ad 100644 (file)
@@ -7,23 +7,26 @@ sys.setdefaultencoding("utf-8")
 sys.stdout = codecs.lookup('utf-8')[-1](sys.stdout)
 
 # Find the best reactor
+selectWarning = "Unable to install any good reactors (kqueue, epoll, poll).\nWe fell back to using select. You may have scalability problems.\nThis reactor will not support more than 1024 connections +at a time."
 try:
        from twisted.internet import epollreactor as bestreactor
-except ImportError:
+except:
        try:
                from twisted.internet import kqreactor as bestreactor
-       except ImportError:
+       except:
                try:
                        from twisted.internet import pollreactor as bestreactor
-               except ImportError:
+               except:
                        try:
-                               from twisted.internet import default as bestreactor
-                               print "Unable to install any good reactors (kqueue, epoll, poll)."
-                               print "We fell back to using select. You may have scalability problems."
-                               print "This reactor will not support more than 1024 connections at a time."
-                       except ImportError:
-                               print "Unable to find a reactor.\nExiting..."
-                               sys.exit(1)
+                               from twisted.internet import selectreactor as bestreactor
+                               print selectWarning
+                       except:
+                               try:
+                                       from twisted.internet import default as bestreactor
+                                       print selectWarning
+                               except:
+                                       print "Unable to find a reactor.\nExiting..."
+                                       sys.exit(1)
 bestreactor.install()