Commits

Martin Gergov committed c80c8c8

Server shoud not be in endless void of unhandled events anymore. Client not working yet...

Comments (0)

Files changed (9)

 import random
 from time import sleep
 
-ok = True
+ok = False
 startup()
 poller = UDTepoll()
 s = UdtSocket(AF_INET, SOCK_DGRAM, AI_PASSIVE)
+s.setblocking(False)
+s.bind(("127.0.0.1", 5001))
+s.listen(20)
 print s.UDTSOCKET
-s.setblocking(True)
-s.bind(("127.0.0.1", 5000))
-# poller.add_usock(s.UDTSOCKET, UDT_EPOLL_IN)
-s.listen(20)
+counter = 0
+poller.add_usock(s.UDTSOCKET, UDT_EPOLL_IN)
+
+# try:
+#     while 1:
+#         sock, addr = s.accept()
+#         sleep(20)
+        
+# except KeyboardInterrupt:
+#     exit("Bye!")
 
 try:
-    while 1:
-        sock, addr = s.accept()
-        sleep(20)
-        
+    while True:
+        print "---------------------------------------------"
+        sets = [[], []]
+        try:
+            sets = poller.wait(True, True, 1000, False, False)
+        except UDTException as ue:
+            if ue[0] == 6003:
+                pass
+        print sets
+
+        for socket in sets[0]:
+            if (socket.UDTSOCKET == s.UDTSOCKET.UDTSOCKET):
+                sock, host = accept(socket)
+                print sock, host
+                sock = UdtSocket(_sock=sock)
+                sock.setblocking(False)
+                poller.add_usock(sock.UDTSOCKET, UDT_EPOLL_IN)
+            else:
+                try:
+                    mess = recvmsg(socket, 100)
+                    print "READ:", socket,";", "RECV:", mess
+                    if counter < 100:
+                        poller.add_usock(socket , UDT_EPOLL_OUT)
+                    #sendmsg(socket.UDTSOCKET, mess, len(mess))
+                except udt4.UDTException as ue:
+                    print "ERR:",ue
+                    if ue[0] == 6002:
+                        poller.remove_usock(socket)
+                        poller.add_usock(socket, UDT_EPOLL_IN)
+                        pass
+            gc.collect()
+
+        for socket in sets[1]:
+            if sock.UDTSOCKET.UDTSOCKET == socket.UDTSOCKET:
+                mess = "HELLO!"
+                mess = sendmsg(socket, mess, len(mess))
+                poller.remove_usock(socket)
+                poller.add_usock(socket, UDT_EPOLL_IN)
+
+                counter += 1
+
+            gc.collect()
 except KeyboardInterrupt:
+    poller.remove_usock(s.UDTSOCKET)
+    sock.close()
+    s.close()
+    cleanup()
     exit("Bye!")
 
-# try:
-#     while True:
-#         #sets = poller.wait(True, True, 1000, False, False)
-#         #print sets
-        
-#         # for socket in sets[0]:
-#         #     if (socket.UDTSOCKET == s.UDTSOCKET.UDTSOCKET):
-#         #         sock, host = accept(socket)
-#         #         print sock, host
-#         #         sock = UdtSocket(_sock=sock)
-#         #         sock.setblocking(False)
-#         #         poller.add_usock(sock.UDTSOCKET, UDT_EPOLL_IN)
-#         #         #sendmsg(sock.UDTSOCKET, "Hello", 5)
-#         #     else:
-                
-#         #         try:
-#         #             mess = recvmsg(socket.UDTSOCKET, 100)
-#         #             print "READ:", socket,";", "RECV:", mess
-#         #             #sendmsg(socket.UDTSOCKET, mess, len(mess))
-#         #         except udt4.UDTException as ue:
-#         #             print "ERR:",ue
-#         #             poller.remove_usock(socket, UDT_EPOLL_IN)
-#         #             if ue[0] == 6002:
-#         #                 poller.add_usock(socket, UDT_EPOLL_IN)
-#         #     gc.collect()
-                    
-# except KeyboardInterrupt:
-#     exit("Bye!")
-poller.remove_usock(s.UDTSOCKET)
-
-cleanup()

examples/calls

-4
-ADDING S: 4 With flags: 1
-2013-01-22 17:58:08+0200 [-] Log opened.
-2013-01-22 17:58:08+0200 [-] ADDING S: 6 With flags: 1
-2013-01-22 17:58:09+0200 [-] Hello!
-2013-01-22 17:58:09+0200 [-] 1
-2013-01-22 17:58:09+0200 [-] 2
-2013-01-22 17:58:09+0200 [-] Echo starting on 5000
-2013-01-22 17:58:09+0200 [-] Starting protocol <__main__.Echo instance at 0x21f7680>
-2013-01-22 17:58:09+0200 [-] CLIENT!!!
-2013-01-22 17:58:09+0200 [-] ADDING U: <UDTSOCKET object at 0x217bdc8> With flags: 1
-2013-01-22 17:58:09+0200 [-] 5
-2013-01-22 17:58:09+0200 [-] 3
-2013-01-22 17:58:09+0200 [-] <__main__.Echo on 5000>
-2013-01-22 17:58:13+0200 [-] Received SIGINT, shutting down.
-2013-01-22 17:58:13+0200 [-] FD: 4 SELECT: <twisted.internet.posixbase._UnixWaker object at 0x21f3f50>
-2013-01-22 17:58:13+0200 [-] FD: 6 SELECT: <twisted.internet.posixbase._SIGCHLDWaker object at 0x21f90d0>
-2013-01-22 17:58:13+0200 [-] REMOVING: <UDTSOCKET object at 0x217bdc8> With flags: 1
-2013-01-22 17:58:13+0200 [Echo (UDP)] (UDP Port 5000 Closed)
-2013-01-22 17:58:13+0200 [Echo (UDP)] Stopping protocol <__main__.Echo instance at 0x21f7680>
-2013-01-22 17:58:13+0200 [-] Main loop terminated.
-2013-01-22 17:58:13+0200 [-]          3702849 function calls (3701369 primitive calls) in 5.053 seconds
-2013-01-22 17:58:13+0200 [-] 
-2013-01-22 17:58:13+0200 [-]    Ordered by: standard name
-2013-01-22 17:58:13+0200 [-] 
-2013-01-22 17:58:13+0200 [-]    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(ArgInfo)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(ArgSpec)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(Arguments)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(Attribute)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(ModuleInfo)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(ParseResult)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(SplitResult)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 <string>:1(Traceback)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 DLFCN.py:2(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 Queue.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 Queue.py:13(Empty)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 Queue.py:17(Full)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 Queue.py:21(Queue)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 Queue.py:212(PriorityQueue)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 Queue.py:231(LifoQueue)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 UserDict.py:4(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __future__.py:48(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __future__.py:74(_Feature)
-2013-01-22 17:58:13+0200 [-]         7    0.000    0.000    0.000    0.000 __future__.py:75(__init__)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 __init__.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:10(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:1093(Logger)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:11(_checkRequirements)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:1108(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:12(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:1368(RootLogger)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:1374(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:1382(LoggerAdapter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:1670(NullHandler)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:182(_checkLevel)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.034    0.034 __init__.py:2(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:230(LogRecord)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.001    0.001 __init__.py:24(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.102    0.102    0.103    0.103 __init__.py:34(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:346(Formatter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:390(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:44(IDummy)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:46(Dummy)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:494(BufferingFormatter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.003    0.003 __init__.py:52(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:536(Filter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:573(Filterer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:578(__init__)
-2013-01-22 17:58:13+0200 [-]         2    0.001    0.001    0.001    0.001 __init__.py:6(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:645(Handler)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:809(StreamHandler)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:880(FileHandler)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.004    0.002 __init__.py:9(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:944(PlaceHolder)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:991(Manager)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 __init__.py:996(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _baseprocess.py:19(BaseProcess)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.002    0.002 _baseprocess.py:8(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.007    0.007 _newtls.py:11(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _newtls.py:162(ConnectionMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _newtls.py:24(_BypassTLS)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _newtls.py:249(ClientMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _newtls.py:262(ServerMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _reflectpy3.py:102(_NoModuleFound)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _reflectpy3.py:108(InvalidName)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _reflectpy3.py:114(ModuleNotFound)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _reflectpy3.py:121(ObjectNotFound)
-2013-01-22 17:58:13+0200 [-]        30    0.000    0.000    0.000    0.000 _reflectpy3.py:263(qual)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 _reflectpy3.py:289(_safeFormat)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 _reflectpy3.py:316(safe_str)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _reflectpy3.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _signals.py:33(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _signals.py:40(installHandler)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _utilpy3.py:129(FancyStrMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _utilpy3.py:15(FancyEqMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _utilpy3.py:214(InsensitiveDict)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _utilpy3.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]        39    0.000    0.000    0.000    0.000 _utilpy3.py:80(untilConcludes)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 _version.py:2(<module>)
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 _weakrefset.py:16(__init__)
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 _weakrefset.py:20(__enter__)
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 _weakrefset.py:26(__exit__)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 _weakrefset.py:36(__init__)
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 _weakrefset.py:52(_commit_removals)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 _weakrefset.py:58(__iter__)
-2013-01-22 17:58:13+0200 [-]         9    0.000    0.000    0.000    0.000 _weakrefset.py:68(__contains__)
-2013-01-22 17:58:13+0200 [-]        16    0.000    0.000    0.000    0.000 _weakrefset.py:81(add)
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 abc.py:105(register)
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 abc.py:148(__subclasscheck__)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 abc.py:86(__new__)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 abc.py:89(<genexpr>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:125(_LogOwner)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 abstract.py:133(_getLogPrefix)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:156(FileDescriptor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:178(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:186(connectionLost)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:34(_ConsumerMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:410(stopReading)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:418(stopWriting)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 abstract.py:426(startReading)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 abstract.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 adapter.py:132(registered)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:17(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:23(BaseAdapterRegistry)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:297(LookupBasePy)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:34(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:400(VerifyingBasePy)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:434(AdapterLookupBase)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:436(__init__)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 adapter.py:442(changed)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:473(init_extendors)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 adapter.py:478(add_extendor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:594(AdapterLookup)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:597(AdapterRegistry)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:601(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:615(_setBases)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 adapter.py:626(changed)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:633(VerifyingAdapterLookup)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:636(VerifyingAdapterRegistry)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 adapter.py:640(_convert_None_to_Interface)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 adapter.py:646(_normalize_name)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:81(_setBases)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:86(<lambda>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:87(<lambda>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 adapter.py:90(_createLookup)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 adapter.py:95(changed)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 adapter.py:99(register)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 address.py:134(_ServerFactoryIPv4Address)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 address.py:18(_IPAddress)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 address.py:54(IPv4Address)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 address.py:6(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 address.py:72(IPv6Address)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 address.py:83(UNIXAddress)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.001    0.000 advice.py:117(advise)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 advice.py:156(determineMetaclass)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 advice.py:185(minimalBases)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 advice.py:28(<module>)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 advice.py:39(getFrameInfo)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 advice.py:75(addClassAdvisor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 atexit.py:37(register)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 atexit.py:6(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:1079(BasePort)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:1102(_SignalReactorMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:1120(_handleSignals)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 base.py:1141(startRunning)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:1155(_reallyStartRunning)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    4.866    4.866 base.py:1171(run)
-2013-01-22 17:58:13+0200 [-]         1    0.329    0.329    4.865    4.865 base.py:1176(mainLoop)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 base.py:141(activate_delay)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:165(__lt__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:214(ThreadedResolver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:227(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:282(BlockingResolver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:296(_ThreePhaseEvent)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 base.py:325(__init__)
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.000    0.000 base.py:332(addTrigger)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:35(DelayedCall)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.083    0.042 base.py:401(fireEvent)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.083    0.041 base.py:421(_continueFiring)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 base.py:43(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:437(ReactorBase)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:476(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:516(wakeUp)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:576(stop)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:588(crash)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:601(sigInt)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:619(disconnectAll)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.083    0.042 base.py:636(fireSystemEvent)
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.000    0.000 base.py:644(addSystemEventTrigger)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 base.py:670(startRunning)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:693(_reallyStartRunning)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.002    0.002 base.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 base.py:704(callLater)
-2013-01-22 17:58:13+0200 [-]    660032    0.200    0.000    0.200    0.000 base.py:748(_insertNewDelayedCalls)
-2013-01-22 17:58:13+0200 [-]    330016    0.291    0.000    0.481    0.000 base.py:757(timeout)
-2013-01-22 17:58:13+0200 [-]    330016    0.314    0.000    0.542    0.000 base.py:767(runUntilCurrent)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:916(_initThreads)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:920(callFromThread)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 base.py:996(BaseConnector)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 bisect.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 collections.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 collections.py:25(OrderedDict)
-2013-01-22 17:58:13+0200 [-]         8    0.003    0.000    0.003    0.000 collections.py:287(namedtuple)
-2013-01-22 17:58:13+0200 [-]       343    0.000    0.000    0.000    0.000 collections.py:328(<genexpr>)
-2013-01-22 17:58:13+0200 [-]        43    0.000    0.000    0.000    0.000 collections.py:352(<genexpr>)
-2013-01-22 17:58:13+0200 [-]        43    0.000    0.000    0.000    0.000 collections.py:354(<genexpr>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 collections.py:386(Counter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.003    0.003 compat.py:19(<module>)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 compat.py:196(comparable)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 components.py:107(_addHook)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 components.py:149(Adapter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 components.py:192(Componentized)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 components.py:29(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 components.py:312(ReprableComponentized)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 components.py:360(_ProxiedClassMethod)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 components.py:392(_ProxyDescriptor)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 components.py:60(_registered)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 components.py:68(registerAdapter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 context.py:106(ThreadedContextTracker)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 context.py:107(__init__)
-2013-01-22 17:58:13+0200 [-]        25    0.000    0.000    0.000    0.000 context.py:110(currentContext)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 context.py:117(callWithContext)
-2013-01-22 17:58:13+0200 [-]        22    0.000    0.000    0.000    0.000 context.py:120(getContext)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 context.py:124(installContextTracker)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 context.py:13(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 context.py:23(ContextTracker)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 context.py:57(__init__)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 context.py:61(callWithContext)
-2013-01-22 17:58:13+0200 [-]        22    0.000    0.000    0.000    0.000 context.py:86(getContext)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 copy_reg.py:14(pickle)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 copy_reg.py:27(constructor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:1004(ClassProvides)
-2013-01-22 17:58:13+0200 [-]        56    0.000    0.000    0.003    0.000 declarations.py:1028(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:1138(provider)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:1148(moduleProvides)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:1323(ObjectSpecificationDescriptorPy)
-2013-01-22 17:58:13+0200 [-]   350/164    0.000    0.000    0.001    0.000 declarations.py:1366(_normalizeargs)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:232(Implements)
-2013-01-22 17:58:13+0200 [-]     62/39    0.001    0.000    0.007    0.000 declarations.py:248(implementedByFallback)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:28(<module>)
-2013-01-22 17:58:13+0200 [-]        43    0.000    0.000    0.010    0.000 declarations.py:408(classImplements)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:41(Declaration)
-2013-01-22 17:58:13+0200 [-]       120    0.000    0.000    0.006    0.000 declarations.py:44(__init__)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.001    0.000 declarations.py:468(_implements_advice)
-2013-01-22 17:58:13+0200 [-]   164/163    0.001    0.000    0.006    0.000 declarations.py:47(changed)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:475(implementer)
-2013-01-22 17:58:13+0200 [-]        32    0.000    0.000    0.000    0.000 declarations.py:477(__init__)
-2013-01-22 17:58:13+0200 [-]        32    0.000    0.000    0.008    0.000 declarations.py:480(__call__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:492(implementer_only)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 declarations.py:509(_implements)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 declarations.py:526(implements)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:650(Provides)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:656(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:699(Provides)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 declarations.py:978(ClassProvidesBasePy)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1029(_DefGen_Return)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1220(_ConcurrencyPrimitive)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1263(DeferredLock)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1326(DeferredSemaphore)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1395(QueueOverflow)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1400(QueueUnderflow)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1405(DeferredQueue)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1484(AlreadyTryingToLockError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:1492(DeferredFilesystemLock)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:17(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:185(Deferred)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 defer.py:245(__init__)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.083    0.021 defer.py:276(addCallbacks)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.083    0.021 defer.py:298(addCallback)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:34(AlreadyCalledError)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.003    0.001 defer.py:359(callback)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:38(CancelledError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:44(TimeoutError)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.003    0.001 defer.py:472(_startRunCallbacks)
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.086    0.017 defer.py:501(_runCallbacks)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:647(DebugInfo)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:683(FirstError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:735(DeferredList)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 defer.py:759(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 defer.py:883(waitForDeferred)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 dep_util.py:5(<module>)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 deprecate.py:103(_getReplacementString)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:119(_getDeprecationDocstring)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:140(_getDeprecationWarningString)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:177(getDeprecationWarningString)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:213(_appendToDocstring)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:240(deprecated)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:258(deprecationDecorator)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 deprecate.py:302(_InternalState)
-2013-01-22 17:58:13+0200 [-]        18    0.000    0.000    0.000    0.000 deprecate.py:310(__init__)
-2013-01-22 17:58:13+0200 [-]        48    0.000    0.000    0.000    0.000 deprecate.py:314(__getattribute__)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 deprecate.py:319(__setattr__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 deprecate.py:325(_ModuleProxy)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:352(__init__)
-2013-01-22 17:58:13+0200 [-]        16    0.000    0.000    0.000    0.000 deprecate.py:377(__getattribute__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 deprecate.py:408(_DeprecatedAttribute)
-2013-01-22 17:58:13+0200 [-]         7    0.000    0.000    0.000    0.000 deprecate.py:428(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 deprecate.py:45(<module>)
-2013-01-22 17:58:13+0200 [-]         7    0.000    0.000    0.000    0.000 deprecate.py:455(_deprecateAttribute)
-2013-01-22 17:58:13+0200 [-]         7    0.000    0.000    0.000    0.000 deprecate.py:481(deprecatedModuleAttribute)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 deprecate.py:70(_fullyQualifiedName)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 dis.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 epollreactor.py:12(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 epollreactor.py:144(removeAll)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 epollreactor.py:171(EPollReactor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 epollreactor.py:332(removeAll)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 epollreactor.py:38(_ContinuousPolling)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 epollreactor.py:69(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:107(ConnectBindError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:112(UnknownHostError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:117(NoRouteError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:122(ConnectionRefusedError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:127(TCPTimedOutError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:132(BadFileError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:137(ServiceNameUnknownError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:142(UserError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:147(TimeoutError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:152(SSLError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:157(VerifyError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:163(PeerVerifyError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:169(CertificateError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:17(BindError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:212(ConnectionClosed)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:219(ConnectionLost)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:231(ConnectionAborted)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:241(ConnectionDone)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:253(FileDescriptorOverrun)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:266(ConnectionFdescWentAway)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:271(AlreadyCalled)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:283(AlreadyCancelled)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:29(CannotListenError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:295(PotentialZombieWarning)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:318(ProcessDone)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:329(ProcessTerminated)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:343(ProcessExitedAlready)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:351(NotConnectingError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:363(NotListeningError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:375(ReactorNotRunning)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:381(ReactorNotRestartable)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:388(ReactorAlreadyRunning)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:394(ReactorAlreadyInstalledError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:401(ConnectingCancelledError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:420(UnsupportedAddressFamily)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:428(UnsupportedSocketType)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:435(AlreadyListened)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:52(MulticastJoinError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:59(MessageLengthError)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.001    0.001 error.py:6(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:71(DNSLookupError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:83(ConnectInProgressError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 error.py:89(ConnectError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:13(DistutilsError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:16(DistutilsModuleError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:20(DistutilsClassError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:26(DistutilsGetoptError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:29(DistutilsArgError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:33(DistutilsFileError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:38(DistutilsOptionError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:46(DistutilsSetupError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:50(DistutilsPlatformError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:55(DistutilsExecError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:59(DistutilsInternalError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:63(DistutilsTemplateError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:66(DistutilsByteCompileError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:70(CCompilerError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:73(PreprocessError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:76(CompileError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:79(LibError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:83(LinkError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:87(UnknownFileError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 errors.py:9(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 exceptions.py:17(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 exceptions.py:19(Invalid)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 exceptions.py:23(DoesNotImplement)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 exceptions.py:33(BrokenImplementation)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 exceptions.py:47(BrokenMethodImplementation)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 exceptions.py:60(InvalidInterface)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 exceptions.py:64(BadImplements)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:115(_Frame)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.014    0.014 failure.py:12(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:136(_Code)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:145(Failure)
-2013-01-22 17:58:13+0200 [-]         6    0.000    0.000    0.000    0.000 failure.py:172(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:29(DefaultException)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:456(__getstate__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:489(cleanFailure)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:82(NoCurrentExceptionError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 failure.py:89(_Traceback)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 fdesc.py:21(setNonBlocking)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 fdesc.py:44(_setCloseOnExec)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 fdesc.py:62(readFromFD)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 fdesc.py:8(<module>)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 functools.py:17(update_wrapper)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 functools.py:39(wraps)
-2013-01-22 17:58:13+0200 [-]        98    0.000    0.000    0.001    0.000 genericpath.py:15(exists)
-2013-01-22 17:58:13+0200 [-]       196    0.000    0.000    0.001    0.000 genericpath.py:38(isdir)
-2013-01-22 17:58:13+0200 [-]       166    0.000    0.000    0.000    0.000 genericpath.py:85(_splitext)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 hashlib.py:55(<module>)
-2013-01-22 17:58:13+0200 [-]         6    0.000    0.000    0.000    0.000 hashlib.py:94(__get_openssl_constructor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 heapq.py:31(<module>)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 inspect.py:142(isfunction)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.013    0.013 inspect.py:25(<module>)
-2013-01-22 17:58:13+0200 [-]         6    0.000    0.000    0.000    0.000 inspect.py:340(getmro)
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 inspect.py:59(isclass)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 inspect.py:630(EndOfBlock)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 inspect.py:632(BlockFinder)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 interface.py:15(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:169(InterfaceBasePy)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:217(Specification)
-2013-01-22 17:58:13+0200 [-]       184    0.001    0.000    0.008    0.000 interface.py:262(__init__)
-2013-01-22 17:58:13+0200 [-]       334    0.000    0.000    0.002    0.000 interface.py:267(subscribe)
-2013-01-22 17:58:13+0200 [-]        84    0.000    0.000    0.000    0.000 interface.py:270(unsubscribe)
-2013-01-22 17:58:13+0200 [-]       227    0.001    0.000    0.010    0.000 interface.py:279(__setBases)
-2013-01-22 17:58:13+0200 [-]      1638    0.001    0.000    0.001    0.000 interface.py:293(<lambda>)
-2013-01-22 17:58:13+0200 [-]   228/227    0.002    0.000    0.006    0.000 interface.py:297(changed)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:428(InterfaceClass)
-2013-01-22 17:58:13+0200 [-]        64    0.001    0.000    0.004    0.000 interface.py:436(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:48(Element)
-2013-01-22 17:58:13+0200 [-]       2/1    0.000    0.000    0.000    0.000 interface.py:525(names)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:537(__iter__)
-2013-01-22 17:58:13+0200 [-]       283    0.000    0.000    0.000    0.000 interface.py:55(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:701(Attribute)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:713(Method)
-2013-01-22 17:58:13+0200 [-]       208    0.001    0.000    0.001    0.000 interface.py:750(fromFunction)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.002    0.002 interface.py:801(_wire)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interface.py:90(SpecificationBasePy)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1029(IListeningPort)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1059(ILoggingContext)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1073(IFileDescriptor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1111(IReadDescriptor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1128(IWriteDescriptor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1145(IReadWriteDescriptor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1151(IHalfCloseableDescriptor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1167(ISystemHandle)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1185(IConsumer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1236(IProducer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1253(IPushProducer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1277(IPullProducer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1293(IProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1341(IProcessProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1407(IHalfCloseableProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:143(IInterface)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1442(IFileDescriptorReceiver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1461(IProtocolFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1491(ITransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:15(IAddress)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1552(ITCPTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1620(IUNIXTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1647(ITLSTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1661(ISSLTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1672(IProcessTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 interfaces.py:17(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1746(IServiceCollection)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1769(IUDPTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1814(IUNIXDatagramTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1830(IUNIXDatagramConnectedTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1851(IMulticastTransport)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1902(IStreamClientEndpoint)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:192(IReactorTCP)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1922(IStreamServerEndpoint)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1942(IStreamServerEndpointStringParser)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:1970(IStreamClientEndpointStringParser)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:239(IReactorSSL)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:24(IConnector)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:24(IElement)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:281(IReactorUNIX)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:302(IDeclaration)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:328(IReactorUNIXDatagram)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:361(IInterfaceDeclaration)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:374(IReactorWin32Events)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:407(IReactorUDP)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:421(IReactorMulticast)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:448(IReactorSocket)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:50(IAttribute)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:547(IReactorProcess)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:57(IResolverSimple)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:58(IMethod)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:633(IReactorTime)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:662(IAdapterRegistry)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:676(IDelayedCall)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:733(IReactorThreads)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:778(IReactorCore)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:78(IResolver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.003    0.003 interfaces.py:8(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:85(ISpecification)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:909(IReactorPluggableResolver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:925(IReactorDaemonize)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 interfaces.py:956(IReactorFDSet)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 io.py:34(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 io.py:69(IOBase)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 io.py:72(RawIOBase)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 io.py:75(BufferedIOBase)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 io.py:78(TextIOBase)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 keyword.py:11(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 lockfile.py:8(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 lockfile.py:88(FilesystemLock)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:14(Log)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:147(Logger)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 log.py:151(logPrefix)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:16(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:161(LogPublisher)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:168(__init__)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 log.py:171(addObserver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:182(removeObserver)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.002    0.000 log.py:188(msg)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:27(ILogContext)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 log.py:282(_safeFormat)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 log.py:308(textFromEventDict)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:341(FileLogObserver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:350(__init__)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 log.py:354(getTimezoneOffset)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.001    0.000 log.py:368(formatTime)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:37(ILogObserver)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.002    0.000 log.py:399(emit)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:424(PythonLoggingObserver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:475(StdioOnnaStick)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 log.py:491(__init__)
-2013-01-22 17:58:13+0200 [-]        52    0.000    0.000    0.002    0.000 log.py:515(write)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:537(startLogging)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:551(startLoggingWithObserver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:571(NullFile)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:596(DefaultObserver)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:616(start)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 log.py:619(stop)
-2013-01-22 17:58:13+0200 [-]         1    0.002    0.002    0.017    0.017 log.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 log.py:70(callWithContext)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 log.py:75(callWithLogger)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 main.py:11(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 main.py:22(installReactor)
-2013-01-22 17:58:13+0200 [-]       119    0.000    0.000    0.000    0.000 opcode.py:27(def_op)
-2013-01-22 17:58:13+0200 [-]        11    0.000    0.000    0.000    0.000 opcode.py:31(name_op)
-2013-01-22 17:58:13+0200 [-]         6    0.000    0.000    0.000    0.000 opcode.py:35(jrel_op)
-2013-01-22 17:58:13+0200 [-]         6    0.000    0.000    0.000    0.000 opcode.py:39(jabs_op)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 opcode.py:5(<module>)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 os.py:35(_get_exports_list)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pickle.py:1261(_EmptyClass)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pickle.py:171(Pickler)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 pickle.py:25(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pickle.py:58(PickleError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pickle.py:62(PicklingError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pickle.py:69(UnpicklingError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pickle.py:82(_Stop)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pickle.py:827(Unpickler)
-2013-01-22 17:58:13+0200 [-]       166    0.000    0.000    0.001    0.000 pkg_resources.py:1134(safe_name)
-2013-01-22 17:58:13+0200 [-]       161    0.000    0.000    0.001    0.000 pkg_resources.py:1142(safe_version)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1175(NullProvider)
-2013-01-22 17:58:13+0200 [-]        97    0.000    0.000    0.001    0.000 pkg_resources.py:1198(has_metadata)
-2013-01-22 17:58:13+0200 [-]        38    0.000    0.000    0.001    0.000 pkg_resources.py:1202(get_metadata)
-2013-01-22 17:58:13+0200 [-]        38    0.000    0.000    0.001    0.000 pkg_resources.py:1212(get_metadata_lines)
-2013-01-22 17:58:13+0200 [-]       135    0.000    0.000    0.000    0.000 pkg_resources.py:1263(_fn)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1278(EggProvider)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1304(DefaultProvider)
-2013-01-22 17:58:13+0200 [-]        97    0.000    0.000    0.001    0.000 pkg_resources.py:1307(_has)
-2013-01-22 17:58:13+0200 [-]        38    0.000    0.000    0.001    0.000 pkg_resources.py:1319(_get)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1337(EmptyProvider)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1345(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1353(ZipProvider)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.033    0.033 pkg_resources.py:14(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1521(FileMetadata)
-2013-01-22 17:58:13+0200 [-]       100    0.000    0.000    0.000    0.000 pkg_resources.py:1533(__init__)
-2013-01-22 17:58:13+0200 [-]       151    0.000    0.000    0.000    0.000 pkg_resources.py:1536(has_metadata)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1539(get_metadata)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1547(get_metadata_lines)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1565(PathMetadata)
-2013-01-22 17:58:13+0200 [-]        66    0.000    0.000    0.000    0.000 pkg_resources.py:1585(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1590(EggMetadata)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1606(ImpWrapper)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1627(ImpLoader)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 pkg_resources.py:1690(register_finder)
-2013-01-22 17:58:13+0200 [-]        32    0.000    0.000    0.001    0.000 pkg_resources.py:1700(find_distributions)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 pkg_resources.py:1729(find_nothing)
-2013-01-22 17:58:13+0200 [-]       196    0.002    0.000    0.009    0.000 pkg_resources.py:1733(find_on_path)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:175(ResolutionError)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 pkg_resources.py:1782(register_namespace_handler)
-2013-01-22 17:58:13+0200 [-]        75    0.000    0.000    0.005    0.000 pkg_resources.py:1799(_handle_ns)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:180(VersionConflict)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.002    0.000 pkg_resources.py:1820(declare_namespace)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:183(DistributionNotFound)
-2013-01-22 17:58:13+0200 [-]        83    0.000    0.000    0.003    0.000 pkg_resources.py:1852(fixup_namespace_packages)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:186(UnknownExtra)
-2013-01-22 17:58:13+0200 [-]        35    0.000    0.000    0.000    0.000 pkg_resources.py:1862(file_ns_handler)
-2013-01-22 17:58:13+0200 [-]        99    0.000    0.000    0.004    0.000 pkg_resources.py:1892(normalize_path)
-2013-01-22 17:58:13+0200 [-]      1510    0.000    0.000    0.001    0.000 pkg_resources.py:1896(_normalize_cached)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1903(_set_parent_ns)
-2013-01-22 17:58:13+0200 [-]        85    0.000    0.000    0.000    0.000 pkg_resources.py:1911(yield_lines)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 pkg_resources.py:197(register_loader_type)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:1992(EntryPoint)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:2120(Distribution)
-2013-01-22 17:58:13+0200 [-]       166    0.001    0.000    0.002    0.000 pkg_resources.py:2124(__init__)
-2013-01-22 17:58:13+0200 [-]       166    0.001    0.000    0.004    0.000 pkg_resources.py:2138(from_location)
-2013-01-22 17:58:13+0200 [-]       581    0.000    0.000    0.001    0.000 pkg_resources.py:2188(key)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:2207(version)
-2013-01-22 17:58:13+0200 [-]       294    0.000    0.000    0.003    0.000 pkg_resources.py:2251(_get_metadata)
-2013-01-22 17:58:13+0200 [-]        83    0.000    0.000    0.014    0.000 pkg_resources.py:2256(activate)
-2013-01-22 17:58:13+0200 [-]       454    0.000    0.000    0.001    0.000 pkg_resources.py:2288(__getattr__)
-2013-01-22 17:58:13+0200 [-]        83    0.001    0.000    0.008    0.000 pkg_resources.py:2347(insert_on)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 pkg_resources.py:238(get_build_platform)
-2013-01-22 17:58:13+0200 [-]        83    0.000    0.000    0.006    0.000 pkg_resources.py:2399(check_version_conflict)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:2448(DistInfoDistribution)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:2641(Requirement)
-2013-01-22 17:58:13+0200 [-]        67    0.001    0.000    0.001    0.000 pkg_resources.py:2741(_get_mro)
-2013-01-22 17:58:13+0200 [-]        65    0.000    0.000    0.000    0.000 pkg_resources.py:2744(cls)
-2013-01-22 17:58:13+0200 [-]        67    0.000    0.000    0.001    0.000 pkg_resources.py:2748(_find_adapter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:2798(_initialize)
-2013-01-22 17:58:13+0200 [-]        83    0.000    0.000    0.014    0.000 pkg_resources.py:2835(<lambda>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:348(IMetadataProvider)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:380(IResourceProvider)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:421(WorkingSet)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.007    0.007 pkg_resources.py:424(__init__)
-2013-01-22 17:58:13+0200 [-]        32    0.000    0.000    0.012    0.000 pkg_resources.py:438(add_entry)
-2013-01-22 17:58:13+0200 [-]        84    0.000    0.000    0.000    0.000 pkg_resources.py:503(__iter__)
-2013-01-22 17:58:13+0200 [-]       166    0.001    0.000    0.002    0.000 pkg_resources.py:520(add)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 pkg_resources.py:57(_declare_state)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.014    0.014 pkg_resources.py:698(subscribe)
-2013-01-22 17:58:13+0200 [-]        83    0.000    0.000    0.000    0.000 pkg_resources.py:707(_added_new)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 pkg_resources.py:724(Environment)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:870(ExtractionError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:888(ResourceManager)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkg_resources.py:892(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 pkg_resources.py:93(get_supported_platform)
-2013-01-22 17:58:13+0200 [-]       103    0.000    0.000    0.000    0.000 pkgutil.py:173(__init__)
-2013-01-22 17:58:13+0200 [-]        73    0.000    0.000    0.003    0.000 pkgutil.py:176(find_module)
-2013-01-22 17:58:13+0200 [-]        35    0.000    0.000    0.000    0.000 pkgutil.py:237(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkgutil.py:243(load_module)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pkgutil.py:257(_reopen)
-2013-01-22 17:58:13+0200 [-]       107    0.000    0.000    0.000    0.000 pkgutil.py:366(get_importer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:129(WrappingFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:189(ThrottlingProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:230(ThrottlingFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:369(SpewingProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:380(SpewingFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:385(LimitConnectionsByPeer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:39(ProtocolWrapper)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:407(LimitTotalConnectionsFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:449(TimeoutProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:536(TimeoutFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:562(TrafficLoggingProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:628(TrafficLoggingFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:658(TimeoutMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 policies.py:9(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:115(_FDWaker)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 posixbase.py:134(__init__)
-2013-01-22 17:58:13+0200 [-]         6    0.000    0.000    0.000    0.000 posixbase.py:143(<lambda>)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 posixbase.py:146(doRead)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 posixbase.py:150(<lambda>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:167(_UnixWaker)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:174(wakeUp)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:197(_SIGCHLDWaker)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:204(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:208(install)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:222(doRead)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:237(_DisconnectSelectableMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:267(PosixReactorBase)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:281(installWaker)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:295(_handleSignals)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:534(_removeAll)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:557(_PollLikeMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 posixbase.py:65(_SocketWaker)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.018    0.018 posixbase.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]       166    0.000    0.000    0.000    0.000 posixpath.py:104(splitext)
-2013-01-22 17:58:13+0200 [-]        84    0.000    0.000    0.000    0.000 posixpath.py:127(dirname)
-2013-01-22 17:58:13+0200 [-]       699    0.001    0.000    0.002    0.000 posixpath.py:139(islink)
-2013-01-22 17:58:13+0200 [-]       172    0.001    0.000    0.001    0.000 posixpath.py:321(normpath)
-2013-01-22 17:58:13+0200 [-]       172    0.000    0.000    0.001    0.000 posixpath.py:350(abspath)
-2013-01-22 17:58:13+0200 [-]       172    0.001    0.000    0.007    0.000 posixpath.py:364(realpath)
-2013-01-22 17:58:13+0200 [-]       100    0.000    0.000    0.000    0.000 posixpath.py:51(normcase)
-2013-01-22 17:58:13+0200 [-]       344    0.000    0.000    0.000    0.000 posixpath.py:59(isabs)
-2013-01-22 17:58:13+0200 [-]      1044    0.002    0.000    0.002    0.000 posixpath.py:68(join)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:106(ProcessWriter)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.004    0.004 process.py:11(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:220(ProcessReader)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:278(_BaseProcess)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 process.py:41(reapAllProcesses)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:476(_FDDetector)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:496(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:598(Process)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:83(detectLinuxBrokenPipeBehavior)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 process.py:928(PTYProcess)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.003    0.003 protocol.py:10(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:107(ClientFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:139(_InstanceFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:194(ClientCreator)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:21(Factory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:299(ReconnectingClientFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:435(ServerFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:441(BaseProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:477(Protocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:528(ProtocolToConsumerAdapter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:543(ConsumerToProtocolAdapter)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:561(ProcessProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:632(AbstractDatagramProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:646(doStart)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:657(doStop)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:676(stopProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:682(makeConnection)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:700(DatagramProtocol)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 protocol.py:711(logPrefix)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:727(ConnectedDatagramProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 protocol.py:747(FileWrapper)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pty.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.001    0.001 pyudt.py:11(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:116(bind)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:126(close)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:189(getsockname)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:227(listen)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:273(setblocking)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 pyudt.py:298(setsockopt)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:31(UdtSocket)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:38(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:458(Epoll)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 pyudt.py:84(UDTSOCKET)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 pyudt.py:92(__del__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 random.py:100(seed)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 random.py:40(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 random.py:651(WichmannHill)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 random.py:72(Random)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 random.py:801(SystemRandom)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 random.py:91(__init__)
-2013-01-22 17:58:13+0200 [-]       117    0.000    0.000    0.000    0.000 re.py:134(match)
-2013-01-22 17:58:13+0200 [-]       327    0.000    0.000    0.001    0.000 re.py:144(sub)
-2013-01-22 17:58:13+0200 [-]        22    0.000    0.000    0.014    0.001 re.py:188(compile)
-2013-01-22 17:58:13+0200 [-]       466    0.001    0.000    0.015    0.000 re.py:226(_compile)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 reflect.py:131(PropertyAccessor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 reflect.py:174(Accessor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 reflect.py:237(Summer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 reflect.py:285(QueueMethod)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 reflect.py:44(Settable)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 reflect.py:67(AccessorType)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 reflect.py:8(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 reflect.py:96(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 ro.py:17(<module>)
-2013-01-22 17:58:13+0200 [-]       229    0.000    0.000    0.003    0.000 ro.py:21(ro)
-2013-01-22 17:58:13+0200 [-]       229    0.001    0.000    0.001    0.000 ro.py:26(mergeOrderings)
-2013-01-22 17:58:13+0200 [-]       229    0.001    0.000    0.002    0.000 ro.py:60(_flatten)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 runtime.py:126(supportsThreads)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 runtime.py:49(Platform)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 runtime.py:5(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 runtime.py:56(__init__)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 runtime.py:69(getType)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 runtime.py:99(isWindows)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 socket.py:167(_closedsocket)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 socket.py:179(_socketobject)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 socket.py:235(_fileobject)
-2013-01-22 17:58:13+0200 [-]         1    0.002    0.002    0.002    0.002 socket.py:45(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 spawn.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]       146    0.000    0.000    0.003    0.000 sre_compile.py:178(_compile_charset)
-2013-01-22 17:58:13+0200 [-]       146    0.002    0.000    0.003    0.000 sre_compile.py:207(_optimize_charset)
-2013-01-22 17:58:13+0200 [-]       393    0.000    0.000    0.000    0.000 sre_compile.py:24(_identityfunction)
-2013-01-22 17:58:13+0200 [-]        27    0.001    0.000    0.001    0.000 sre_compile.py:258(_mk_bitmap)
-2013-01-22 17:58:13+0200 [-]    358/24    0.002    0.000    0.006    0.000 sre_compile.py:32(_compile)
-2013-01-22 17:58:13+0200 [-]       158    0.000    0.000    0.000    0.000 sre_compile.py:354(_simple)
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.001    0.000 sre_compile.py:361(_compile_info)
-2013-01-22 17:58:13+0200 [-]        48    0.000    0.000    0.000    0.000 sre_compile.py:474(isstring)
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.008    0.000 sre_compile.py:480(_code)
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.014    0.001 sre_compile.py:495(compile)
-2013-01-22 17:58:13+0200 [-]       745    0.000    0.000    0.000    0.000 sre_parse.py:126(__len__)
-2013-01-22 17:58:13+0200 [-]      1532    0.001    0.000    0.001    0.000 sre_parse.py:130(__getitem__)
-2013-01-22 17:58:13+0200 [-]       158    0.000    0.000    0.000    0.000 sre_parse.py:134(__setitem__)
-2013-01-22 17:58:13+0200 [-]       445    0.000    0.000    0.000    0.000 sre_parse.py:138(append)
-2013-01-22 17:58:13+0200 [-]   514/182    0.001    0.000    0.001    0.000 sre_parse.py:140(getwidth)
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.000    0.000 sre_parse.py:178(__init__)
-2013-01-22 17:58:13+0200 [-]      1255    0.001    0.000    0.001    0.000 sre_parse.py:182(__next)
-2013-01-22 17:58:13+0200 [-]       927    0.000    0.000    0.000    0.000 sre_parse.py:195(match)
-2013-01-22 17:58:13+0200 [-]      1011    0.000    0.000    0.001    0.000 sre_parse.py:201(get)
-2013-01-22 17:58:13+0200 [-]        16    0.000    0.000    0.000    0.000 sre_parse.py:210(isident)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 sre_parse.py:216(isname)
-2013-01-22 17:58:13+0200 [-]        40    0.000    0.000    0.000    0.000 sre_parse.py:225(_class_escape)
-2013-01-22 17:58:13+0200 [-]        96    0.000    0.000    0.000    0.000 sre_parse.py:257(_escape)
-2013-01-22 17:58:13+0200 [-]    100/24    0.001    0.000    0.006    0.000 sre_parse.py:301(_parse_sub)
-2013-01-22 17:58:13+0200 [-]    166/24    0.002    0.000    0.006    0.000 sre_parse.py:379(_parse)
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.006    0.000 sre_parse.py:663(parse)
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.000    0.000 sre_parse.py:67(__init__)
-2013-01-22 17:58:13+0200 [-]        64    0.000    0.000    0.000    0.000 sre_parse.py:72(opengroup)
-2013-01-22 17:58:13+0200 [-]        64    0.000    0.000    0.000    0.000 sre_parse.py:83(closegroup)
-2013-01-22 17:58:13+0200 [-]       358    0.000    0.000    0.000    0.000 sre_parse.py:90(__init__)
-2013-01-22 17:58:13+0200 [-]       889    0.000    0.000    0.000    0.000 stat.py:24(S_IFMT)
-2013-01-22 17:58:13+0200 [-]       196    0.000    0.000    0.000    0.000 stat.py:40(S_ISDIR)
-2013-01-22 17:58:13+0200 [-]       693    0.000    0.000    0.000    0.000 stat.py:55(S_ISLNK)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 string.py:220(lower)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 string.py:511(replace)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 styles.py:111(Ephemeral)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 styles.py:170(Versioned)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 styles.py:9(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:262(SchedulerError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:27(LoopingCall)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:272(SchedulerStopped)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:280(TaskFinished)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:288(TaskDone)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:295(TaskStopped)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:302(TaskFailed)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:310(NotPaused)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:318(_Timer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:335(CooperativeTask)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:499(Cooperator)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:504(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:676(Clock)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 task.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:1142(Connector)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:116(_SocketCloser)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:145(_AbortingMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:172(Connection)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:325(_BaseBaseClient)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:490(BaseClient)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:643(_BaseTCPClient)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:735(Client)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:744(Server)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tcp.py:856(Port)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.008    0.008 tcp.py:9(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    5.054    5.054 testudt.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 testudt.py:13(Echo)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 testudt.py:15(startProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 testudt.py:24(Tester)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.002    0.002 testudt.py:26(listen_to_udt_port)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 testudt.py:30(print_hello)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:104(getThreadID)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:118(registerAsIOThread)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:14(DummyLock)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 threadable.py:33(_synchPre)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 threadable.py:43(_synchPost)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:48(_sync)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.003    0.000 threadable.py:49(sync)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:60(synchronize)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:76(init)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:8(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threadable.py:88(XLock)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 threading.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:101(RLock)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:104(_RLock)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 threading.py:106(__init__)
-2013-01-22 17:58:13+0200 [-]        20    0.000    0.000    0.000    0.000 threading.py:121(acquire)
-2013-01-22 17:58:13+0200 [-]        20    0.000    0.000    0.000    0.000 threading.py:141(release)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 threading.py:181(Condition)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:184(_Condition)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 threading.py:186(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:226(_is_owned)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:277(notify)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:295(notifyAll)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:304(_Semaphore)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:352(_BoundedSemaphore)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:364(Event)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:367(_Event)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:371(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:385(set)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:424(Thread)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:436(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:531(_set_ident)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:56(_Verbose)
-2013-01-22 17:58:13+0200 [-]         7    0.000    0.000    0.000    0.000 threading.py:58(__init__)
-2013-01-22 17:58:13+0200 [-]        41    0.000    0.000    0.000    0.000 threading.py:63(_note)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:696(ident)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:737(_Timer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:766(_MainThread)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:768(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:775(_set_daemon)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:806(_DummyThread)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threading.py:830(currentThread)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 threads.py:8(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tls.py:162(_ProducerMembrane)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tls.py:210(TLSMemoryBIOProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.006    0.006 tls.py:36(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tls.py:581(TLSMemoryBIOFactory)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tls.py:64(_PullToPush)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 token.py:3(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tokenize.py:145(TokenError)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tokenize.py:147(StopTokenizing)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tokenize.py:178(Untokenizer)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.011    0.011 tokenize.py:23(<module>)
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 tokenize.py:44(group)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tokenize.py:45(any)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 tokenize.py:46(maybe)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 tty.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.004    0.004 udp.py:16(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udp.py:232(connectionLost)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udp.py:248(setLogStr)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udp.py:256(logPrefix)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udp.py:273(MulticastMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udp.py:329(MulticastPort)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udp.py:56(Port)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udp.py:84(__repr__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.002    0.002 udp.py:96(startListening)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 udt.py:1(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 udt.py:126(_connectToProtocol)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udt.py:19(Port)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udt.py:28(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udt.py:58(createInternetSocket)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.001    0.001 udt.py:69(_bindSocket)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.002    0.002 udt.py:91(startListening)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.001    0.000 udtepollreactor.py:125(addReader)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 udtepollreactor.py:158(removeReader)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udtepollreactor.py:169(removeWriter)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 udtepollreactor.py:180(_remove)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udtepollreactor.py:21(IReactorUDT)
-2013-01-22 17:58:13+0200 [-]    660032    0.813    0.000    0.813    0.000 udtepollreactor.py:219(_handleSystemSocketSet)
-2013-01-22 17:58:13+0200 [-]    330016    0.552    0.000    3.513    0.000 udtepollreactor.py:268(doPoll)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 udtepollreactor.py:298(_doReadOrWrite)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.002    0.002 udtepollreactor.py:339(listenUDT)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udtepollreactor.py:355(install)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udtepollreactor.py:36(_UDTContinuousPolling)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.186    0.186 udtepollreactor.py:4(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udtepollreactor.py:43(UDTEPollReactor)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 udtepollreactor.py:49(__init__)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.001    0.000 udtepollreactor.py:86(_add)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 urlparse.py:118(SplitResult)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 urlparse.py:126(ParseResult)
-2013-01-22 17:58:13+0200 [-]         1    0.001    0.001    0.002    0.002 urlparse.py:29(<module>)
-2013-01-22 17:58:13+0200 [-]       485    0.000    0.000    0.000    0.000 urlparse.py:320(<genexpr>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 urlparse.py:71(ResultMixin)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 util.py:16(get_platform)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 util.py:23(OrderedDict)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 util.py:303(LineLog)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 util.py:349(IntervalDifferential)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 util.py:384(_IntervalDifferentialIterator)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.001    0.000 util.py:5(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 util.py:566(SubclassableCStringIO)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 version.py:7(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 versions.py:17(_inf)
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.000    0.000 versions.py:201(_getSVNVersion)
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 versions.py:250(getVersionString)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 versions.py:38(IncomparableVersions)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 versions.py:45(Version)
-2013-01-22 17:58:13+0200 [-]        10    0.000    0.000    0.000    0.000 versions.py:53(__init__)
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.000    0.000 versions.py:73(short)
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.000    0.000 versions.py:85(base)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 versions.py:9(<module>)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 warnings.py:45(filterwarnings)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 weakref.py:101(get)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 weakref.py:223(__new__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 weakref.py:228(__init__)
-2013-01-22 17:58:13+0200 [-]       185    0.000    0.000    0.000    0.000 weakref.py:243(__init__)
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 weakref.py:245(remove)
-2013-01-22 17:58:13+0200 [-]        84    0.000    0.000    0.000    0.000 weakref.py:252(__delitem__)
-2013-01-22 17:58:13+0200 [-]       334    0.000    0.000    0.000    0.000 weakref.py:261(__setitem__)
-2013-01-22 17:58:13+0200 [-]       418    0.001    0.000    0.001    0.000 weakref.py:283(get)
-2013-01-22 17:58:13+0200 [-]       231    0.000    0.000    0.000    0.000 weakref.py:350(keys)
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 weakref.py:47(__init__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 weakref.py:79(__setitem__)
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_hashlib.openssl_md5}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_hashlib.openssl_sha1}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_hashlib.openssl_sha224}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_hashlib.openssl_sha256}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_hashlib.openssl_sha384}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_hashlib.openssl_sha512}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_heapq.heappop}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {_heapq.heappush}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_socket.inet_pton}
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.000    0.000 {_sre.compile}
-2013-01-22 17:58:13+0200 [-]        20    0.000    0.000    0.000    0.000 {_sre.getlower}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_udt4.bind}
-2013-01-22 17:58:13+0200 [-]         1    0.082    0.082    0.082    0.082 {_udt4.cleanup}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_udt4.close}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_udt4.getsockname}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_udt4.listen}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_udt4.pyudt4_version}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {_udt4.setsockopt}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_udt4.socket}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {_udt4.startup}
-2013-01-22 17:58:13+0200 [-]        38    0.000    0.000    0.000    0.000 {abs}
-2013-01-22 17:58:13+0200 [-]        43    0.000    0.000    0.000    0.000 {all}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {binascii.hexlify}
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x8587e0}
-2013-01-22 17:58:13+0200 [-]        83    0.000    0.000    0.001    0.000 {built-in method fromkeys}
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 {built-in method fromtimestamp}
-2013-01-22 17:58:13+0200 [-]        38    0.000    0.000    0.000    0.000 {built-in method utcfromtimestamp}
-2013-01-22 17:58:13+0200 [-]        18    0.000    0.000    0.000    0.000 {callable}
-2013-01-22 17:58:13+0200 [-]       485    0.000    0.000    0.000    0.000 {chr}
-2013-01-22 17:58:13+0200 [-]         5    0.000    0.000    0.000    0.000 {dir}
-2013-01-22 17:58:13+0200 [-]        16    0.000    0.000    0.000    0.000 {fcntl.fcntl}
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 {function changed at 0x20e2488}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {function seed at 0x2094050}
-2013-01-22 17:58:13+0200 [-]       649    0.000    0.000    0.000    0.000 {getattr}
-2013-01-22 17:58:13+0200 [-]        12    0.000    0.000    0.000    0.000 {globals}
-2013-01-22 17:58:13+0200 [-]       116    0.000    0.000    0.000    0.000 {hasattr}
-2013-01-22 17:58:13+0200 [-]        87    0.000    0.000    0.000    0.000 {imp.acquire_lock}
-2013-01-22 17:58:13+0200 [-]        76    0.001    0.000    0.001    0.000 {imp.find_module}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {imp.load_module}
-2013-01-22 17:58:13+0200 [-]        87    0.000    0.000    0.000    0.000 {imp.release_lock}
-2013-01-22 17:58:13+0200 [-]      3979    0.001    0.000    0.001    0.000 {isinstance}
-2013-01-22 17:58:13+0200 [-]     38/27    0.000    0.000    0.000    0.000 {issubclass}
-2013-01-22 17:58:13+0200 [-]       231    0.000    0.000    0.000    0.000 {iter}
-2013-01-22 17:58:13+0200 [-] 5549/5351    0.000    0.000    0.001    0.000 {len}
-2013-01-22 17:58:13+0200 [-]       205    0.001    0.000    0.018    0.000 {map}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {math.exp}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {math.log}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {math.sqrt}
-2013-01-22 17:58:13+0200 [-]    330116    0.071    0.000    0.071    0.000 {max}
-2013-01-22 17:58:13+0200 [-]        43    0.000    0.000    0.000    0.000 {method '__contains__' of 'frozenset' objects}
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 {method '__contains__' of 'set' objects}
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 {method '__subclasses__' of 'type' objects}
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 {method '__subclasshook__' of 'object' objects}
-2013-01-22 17:58:13+0200 [-]        22    0.000    0.000    0.000    0.000 {method 'acquire' of 'thread.lock' objects}
-2013-01-22 17:58:13+0200 [-]        61    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {method 'add_ssock' of 'UDTepoll' objects}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {method 'add_usock' of 'UDTepoll' objects}
-2013-01-22 17:58:13+0200 [-]      6850    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-2013-01-22 17:58:13+0200 [-]       231    0.000    0.000    0.000    0.000 {method 'clear' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {method 'clear' of 'set' objects}
-2013-01-22 17:58:13+0200 [-]        39    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-2013-01-22 17:58:13+0200 [-]        25    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-2013-01-22 17:58:13+0200 [-]      6081    0.001    0.000    0.001    0.000 {method 'endswith' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]        36    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}
-2013-01-22 17:58:13+0200 [-]        17    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {method 'find_module' of 'imp.NullImporter' objects}
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 {method 'flush' of 'file' objects}
-2013-01-22 17:58:13+0200 [-]        78    0.000    0.000    0.000    0.000 {method 'format' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]      3092    0.001    0.000    0.001    0.000 {method 'get' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]        42    0.000    0.000    0.000    0.000 {method 'get' of 'dictproxy' objects}
-2013-01-22 17:58:13+0200 [-]       166    0.000    0.000    0.000    0.000 {method 'group' of '_sre.SRE_Match' objects}
-2013-01-22 17:58:13+0200 [-]        83    0.000    0.000    0.000    0.000 {method 'index' of 'list' objects}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {method 'insert' of 'list' objects}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {method 'isOrExtends' of '_interface_coptimizations.SpecificationBase' objects}
-2013-01-22 17:58:13+0200 [-]       300    0.000    0.000    0.000    0.000 {method 'isalnum' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]        43    0.000    0.000    0.000    0.000 {method 'isdigit' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]       302    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]         4    0.000    0.000    0.000    0.000 {method 'iteritems' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]       228    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]       237    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]      2566    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]       284    0.000    0.000    0.000    0.000 {method 'match' of '_sre.SRE_Pattern' objects}
-2013-01-22 17:58:13+0200 [-]        64    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]        21    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {method 'providedBy' of '_interface_coptimizations.SpecificationBase' objects}
-2013-01-22 17:58:13+0200 [-]        39    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-2013-01-22 17:58:13+0200 [-]        21    0.000    0.000    0.000    0.000 {method 'release' of 'thread.lock' objects}
-2013-01-22 17:58:13+0200 [-]        66    0.000    0.000    0.000    0.000 {method 'remove' of 'list' objects}
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 {method 'remove' of 'set' objects}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {method 'remove_usock' of 'UDTepoll' objects}
-2013-01-22 17:58:13+0200 [-]       199    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]       687    0.000    0.000    0.000    0.000 {method 'reverse' of 'list' objects}
-2013-01-22 17:58:13+0200 [-]       416    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]        84    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]       368    0.000    0.000    0.000    0.000 {method 'setdefault' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {method 'setter' of 'property' objects}
-2013-01-22 17:58:13+0200 [-]       649    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]        40    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]      3487    0.001    0.000    0.001    0.000 {method 'startswith' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]        47    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-2013-01-22 17:58:13+0200 [-]       327    0.001    0.000    0.001    0.000 {method 'sub' of '_sre.SRE_Pattern' objects}
-2013-01-22 17:58:13+0200 [-]       234    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {method 'values' of 'dict' objects}
-2013-01-22 17:58:13+0200 [-]    330016    2.147    0.000    2.147    0.000 {method 'wait' of 'UDTepoll' objects}
-2013-01-22 17:58:13+0200 [-]        19    0.000    0.000    0.000    0.000 {method 'write' of 'file' objects}
-2013-01-22 17:58:13+0200 [-]       812    0.000    0.000    0.000    0.000 {min}
-2013-01-22 17:58:13+0200 [-]        39    0.000    0.000    0.000    0.000 {open}
-2013-01-22 17:58:13+0200 [-]       373    0.000    0.000    0.000    0.000 {ord}
-2013-01-22 17:58:13+0200 [-]        30    0.000    0.000    0.000    0.000 {posix.access}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {posix.close}
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 {posix.getcwd}
-2013-01-22 17:58:13+0200 [-]        30    0.001    0.000    0.001    0.000 {posix.listdir}
-2013-01-22 17:58:13+0200 [-]       699    0.001    0.000    0.001    0.000 {posix.lstat}
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 {posix.pipe}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {posix.read}
-2013-01-22 17:58:13+0200 [-]       294    0.001    0.000    0.001    0.000 {posix.stat}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {posix.uname}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {posix.urandom}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {posix.write}
-2013-01-22 17:58:13+0200 [-]       215    0.000    0.000    0.000    0.000 {range}
-2013-01-22 17:58:13+0200 [-]         8    0.000    0.000    0.000    0.000 {repr}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {select.select}
-2013-01-22 17:58:13+0200 [-]        24    0.000    0.000    0.000    0.000 {setattr}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {signal.getsignal}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {signal.set_wakeup_fd}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {signal.siginterrupt}
-2013-01-22 17:58:13+0200 [-]         3    0.000    0.000    0.000    0.000 {signal.signal}
-2013-01-22 17:58:13+0200 [-]        14    0.000    0.000    0.000    0.000 {sys._getframe}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {sys.getdefaultencoding}
-2013-01-22 17:58:13+0200 [-]         1    0.000    0.000    0.000    0.000 {sys.getdlopenflags}
-2013-01-22 17:58:13+0200 [-]         2    0.000    0.000    0.000    0.000 {sys.setdlopenflags}
-2013-01-22 17:58:13+0200 [-]         6    0.000    0.000    0.000    0.000 {thread.allocate_lock}
-2013-01-22 17:58:13+0200 [-]        43    0.000    0.000    0.000    0.000 {thread.get_ident}
-2013-01-22 17:58:13+0200 [-]    660054    0.061    0.000    0.061    0.000 {time.time}
-2013-01-22 17:58:13+0200 [-]       208    0.000    0.000    0.000    0.000 {zip}
-2013-01-22 17:58:13+0200 [-]   283/108    0.000    0.000    0.007    0.000 {zope.interface._zope_interface_coptimizations.implementedBy}
-2013-01-22 17:58:13+0200 [-] 
-2013-01-22 17:58:13+0200 [-] 

examples/client.py

 s = UdtSocket(AF_INET, SOCK_DGRAM, AI_PASSIVE)
 print s.UDTSOCKET
 s.setblocking(True)
+s.setsockopt(udt4.UDT_RCVTIMEO, 1000)
 s.connect(("127.0.0.1", 5000))
+s.sendmsg("HELLO!", 7)
 try:
     while True:
-        sleep(20)
-        #mess = s.recvmsg(1000)
-        #print mess
-        #s.sendmsg(mess)
-        pass
+        try:
+            mess = s.recvmsg(1000)
+        except udt4.UDTException as ue:
+            if ue[0] == 6003:
+                pass
+            else:
+                raise
+        else:
+            print repr(mess)
+            s.sendmsg(mess)
+            pass
 except udt4.UDTException as ue:
     print ue
     exit("Bye!")
 except KeyboardInterrupt:
+    pass
+
+print "NEXT"
+s.sendmsg("HELLO!", 7)
+
+try:
+    while True:
+        try:
+            mess = s.recvmsg(1000)
+        except udt4.UDTException as ue:
+            if ue[0] == 6003:
+                print "TIMEOUT"
+                pass
+            else:
+                raise
+        else:
+            print repr(mess)
+            s.sendmsg(mess)
+except udt4.UDTException as ue:
+    print ue
+    exit("Bye!")
+
+except KeyboardInterrupt:
     exit("Bye!")
 cleanup()
 

examples/log

-2013-02-18 16:23:49+0200 [-] Log opened.
-2013-02-18 16:23:49+0200 [-] ADDING:6 with flags:1
-2013-02-18 16:23:50+0200 [-] Hello!
-2013-02-18 16:23:50+0200 [-] Starting factory <__main__.EchoFactory instance at 0x1bada70>
-2013-02-18 16:23:50+0200 [-] Started to connect.
-2013-02-18 16:23:50+0200 [-] <udt4twisted.udt.Connector instance at 0x1badb00>
-2013-02-18 16:23:50+0200 [-] ADDING:984591679 with flags:4
-2013-02-18 16:23:50+0200 [Uninitialized] Connected.
-2013-02-18 16:23:50+0200 [Uninitialized] CONN MADE!
-2013-02-18 16:23:50+0200 [Uninitialized] REMOVING:984591679 with flags:4
-2013-02-18 16:23:50+0200 [Uninitialized] ADDING:984591679 with flags:1
-2013-02-18 16:23:50+0200 [Echo,client] received An apple a day keeps the doctor away
-	 from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!!bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:50+0200 [Echo,client] received bomb!!! from IPv4Address(UDP, '127.0.0.1', 5000)
-2013-02-18 16:23:52+0200 [Echo,client] REMOVING:984591679 with flags:1
-2013-02-18 16:23:52+0200 [Echo,client] Connection failed. Reason: [Failure instance: Traceback (failure with no frames): <class 'udt4.UDTException'>: (5004, 'Operation not supported: Invalid socket ID.')
-2013-02-18 16:23:52+0200 [Echo,client] ]
-2013-02-18 16:23:52+0200 [Echo,client] Stopping factory <__main__.EchoFactory instance at 0x1bada70>

examples/newclient.py

 
     def dataReceived(self, data):
         log.msg("received {0} from {1}".format(data, self.transport.getPeer()))
-        self.transport.write("bomb!!!", 200, False)
+        self.transport.write("bomb!!!")
 
     def connectionLost(self, reason):
         print "CONN LOST!"
     port = None
     def connect_to_udt_port(self, res):
         self.echo = EchoFactory()
-        self.port = reactor.connectUDT("127.0.0.1", 5000, self.echo, 5)
+        self.port = reactor.connectUDT("127.0.0.1", 5000, self.echo)
         print self.port
 
     def print_hello(self, res):

examples/newserver.py

 class Echo(Protocol):
     counter=0
     def connectionMade(self):
-        self.transport.write("An apple a day keeps the doctor away\r\n")
+        pass
+        #self.transport.write("An apple a day keeps the doctor away\r\n")
 
     def dataReceived(self, data):
-        print self.counter
-        if self.counter == 100:
+        #print self.counter
+        log.msg("{2}:received {0}:{1}".format(self.counter, data, len(data)))
+        if self.counter == 10:
             return
-        log.msg("received {0}:{1}".format(data, len(data)))
-        self.transport.write(data, 10, False)
+        self.transport.write(data)
         self.counter += 1
 
     def connectionLost(self, reason):

examples/progress

-2013-01-22 23:37:09+0200 [-] 607409555 {607409555: <__main__.Echo on 5000>, 4: <twisted.internet.posixbase._UnixWaker object at 0x28aca50>, 6: <twisted.internet.posixbase._SIGCHLDWaker object at 0x28acb50>}
-2013-01-22 23:37:09+0200 [-] FD: <UDTSOCKET object at 0x283ae18> SELECT: <__main__.Echo on 5000>
-2013-01-22 23:37:09+0200 [-] <UDTSOCKET object at 0x283adc8> ('127.0.0.1', 2996)
-2013-01-22 23:37:09+0200 [Echo (UDP)] Hello from doRead
-2013-01-22 23:37:09+0200 [Echo (UDP)] Unhandled Error
-	Traceback (most recent call last):
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 88, in callWithLogger
-	    return callWithContext({"system": lp}, func, *args, **kw)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
-	    return context.call({ILogContext: newCtx}, func, *args, **kw)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
-	    return self.currentContext().callWithContext(ctx, func, *args, **kw)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
-	    return func(*args,**kw)
-	--- <exception caught here> ---
-	  File "../udt4twisted/udtepollreactor.py", line 355, in _doReadOrWrite
-	    why = selectable.doRead(fd)
-	  File "../udt4twisted/udt.py", line 109, in doRead
-	    print "recv from:", fd, " size:", udt.UDT_RCVDATA
-	exceptions.AttributeError: 'module' object has no attribute 'UDT_RCVDATA'
-	
-2013-01-22 23:37:09+0200 [Echo (UDP)] Unhandled Error
-	Traceback (most recent call last):
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/base.py", line 1173, in run
-	    self.mainLoop()
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/base.py", line 1185, in mainLoop
-	    self.doIteration(t)
-	  File "../udt4twisted/udtepollreactor.py", line 328, in doPoll
-	    self._handleUDTReadSocketSet(uread, self._POLL_IN)
-	  File "../udt4twisted/udtepollreactor.py", line 281, in _handleUDTReadSocketSet
-	    event)
-	--- <exception caught here> ---
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 88, in callWithLogger
-	    return callWithContext({"system": lp}, func, *args, **kw)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
-	    return context.call({ILogContext: newCtx}, func, *args, **kw)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
-	    return self.currentContext().callWithContext(ctx, func, *args, **kw)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
-	    return func(*args,**kw)
-	  File "../udt4twisted/udtepollreactor.py", line 370, in _doReadOrWrite
-	    self._disconnectSelectable(selectable, why, inRead)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 252, in _disconnectSelectable
-	    self.removeReader(selectable)
-	  File "../udt4twisted/udtepollreactor.py", line 194, in removeReader
-	    self._POLL_IN, self._POLL_OUT)
-	  File "../udt4twisted/udtepollreactor.py", line 233, in _remove
-	    del selectables[fd]
-	exceptions.KeyError: <UDTSOCKET object at 0x7f780efa5800>
-	
-^C2013-01-22 23:37:13+0200 [-] Received SIGINT, shutting down.
-2013-01-22 23:37:13+0200 [-] Unhandled Error
-	Traceback (most recent call last):
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/base.py", line 418, in fireEvent
-	    DeferredList(beforeResults).addCallback(self._continueFiring)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 305, in addCallback
-	    callbackKeywords=kw)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 294, in addCallbacks
-	    self._runCallbacks()
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 576, in _runCallbacks
-	    current.result = callback(current.result, *args, **kw)
-	--- <exception caught here> ---
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/base.py", line 431, in _continueFiring
-	    callable(*args, **kwargs)
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/base.py", line 622, in disconnectAll
-	    selectables = self.removeAll()
-	  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/epollreactor.py", line 337, in removeAll
-	    [self._selectables[fd] for fd in self._reads],
-	exceptions.KeyError: <UDTSOCKET object at 0x7f780efa5800>

udt4twisted/udt.py

 import struct
 import socket
 from zope.interface import implementer
+from twisted.internet.defer import inlineCallbacks, returnValue, deferredGenerator
 from twisted.internet import fdesc
 from twisted.python.compat import _PY3
 from twisted.internet import base, defer, address, udp, tcp
 from socket import AI_PASSIVE
 from errno import EWOULDBLOCK, EINTR, EMSGSIZE, ECONNREFUSED, EAGAIN
 from twisted.python.compat import lazyByteSlice
+from collections import deque
 import gc
 _sockErrReadIgnore = [EAGAIN, EINTR, EWOULDBLOCK]
 _sockErrReadRefuse = [ECONNREFUSED]
     @ivar logstr: prefix used when logging events related to this connection.
     @type logstr: C{str}
     """
-    _ttl = -1
-    _inorder = True
+    messageBuffer = deque()
     def _closeSocket(self, orderly):
         try:
             self.socket.close()
             data = udt.recvmsg(self.socket.UDTSOCKET, self.bufferSize)
         except udt.UDTException as ue:
             if ue[0] == EASYNCRCV:
+                #restart socket
+                ein = self.reactor._POLL_IN
+                self.reactor._poller.remove_usock(self.socket.UDTSOCKET)
+                self.reactor._poller.add_usock(self.socket.UDTSOCKET, ein)
                 return
             else:
                 return main.CONNECTION_LOST
         if not self.connected or self._writeDisconnected:
             return
         if data:
-            # self._tempDataBuffer.append(data)
-            # self._tempDataLen += len(data)
-            # self._ttl = ttl
-            # self._inorder = inorder
-            # self._maybePauseProducer()
-            self.startWriting()
-            l = self.writeSomeData(data, ttl, inorder)
+            self.messageBuffer.append([data, ttl, inorder])
+            #self._maybePauseProducer()
+            #self.startWriting()
+            #Really start writable event
+            self.reactor._poller.add_usock(self.socket.UDTSOCKET,
+                                           self.reactor._POLL_OUT)
+
+
+    _messagesAtOnce = 1024
+
+    def splitAndSend(self):
+        """
+        Split and send messages to the other side.
+        """
+        for i in xrange(self._messagesAtOnce):
+            try:
+                message, ttl, inorder = self.messageBuffer.popleft()
+            except IndexError:
+                break
+            l = self.writeSomeData(message, ttl, inorder)
+            if isinstance(l, Exception) or l < 0:
+                return l
+            #FIXME Producers are probably NOT working
+            # If there is nothing left to send,
             if l == main.CONNECTION_LOST:
                 self.loseConnection()
-            
+                return main.CONNECTION_LOST
+            elif self.disconnecting:
+                # But if I was previously asked to
+                #let the connection die, do
+                # so.
+                return self._postLoseConnection()
+            elif self._writeDisconnecting:
+                # I was previously asked to half-close the connection.  We
+                # set _writeDisconnected before calling handler, in case the
+                # handler calls loseConnection(), which
+                #will want to check for
+                # this attribute.
+                self._writeDisconnected = True
+                result = self._closeWriteConnection()
+                return result
+
+        return None
+        
 
     def doWrite(self):
         """
-        Called when data can be written.
-
+        Called when data can be written. It will send all messages recorded
+        in the buffer in a non-blocking way.
         @return: C{None} on success, an exception or a negative integer on
             failure.
 
         @see: L{twisted.internet.interfaces.IWriteDescriptor.doWrite}.
         """
-        
-        if len(self.dataBuffer) - self.offset < self.SEND_LIMIT:
-            # If there is currently less than SEND_LIMIT bytes left to send
-            # in the string, extend it with the array data.
-            self.dataBuffer = _concatenate(
-                self.dataBuffer, self.offset, self._tempDataBuffer)
-            self.offset = 0
-            self._tempDataBuffer = []
-            self._tempDataLen = 0
 
         # Send as much data as you can.
-        if self.dataBuffer == '':
-            return
-        if self.offset:
-            l = self.writeSomeData(lazyByteSlice(self.dataBuffer, self.offset),
-                                   self._ttl, self._inorder)
-        else:
-            l = self.writeSomeData(self.dataBuffer, self._ttl, self._inorder)
-
-        # There is no writeSomeData implementation in Twisted which returns
-        # < 0, but the documentation for writeSomeData used to claim negative
-        # integers meant connection lost.  Keep supporting this here,
-        # although it may be worth deprecating and removing at some point.
-        if isinstance(l, Exception) or l < 0:
-            return l
-        self.offset += l
-        # If there is nothing left to send,
-        if self.offset == len(self.dataBuffer) and not self._tempDataLen:
-            self.dataBuffer = b""
-            self.offset = 0
-            # stop writing.
-            self.stopWriting()
-            # If I've got a producer who is supposed to supply me with data,
-            if self.producer is not None and ((not self.streamingProducer)
-                                              or self.producerPaused):
-                # tell them to supply some more.
-                self.producerPaused = 0
-                self.producer.resumeProducing()
-            elif self.disconnecting:
-                # But if I was previously asked to let the connection die, do
-                # so.
-                return self._postLoseConnection()
-            elif self._writeDisconnecting:
-                # I was previously asked to half-close the connection.  We
-                # set _writeDisconnected before calling handler, in case the
-                # handler calls loseConnection(), which will want to check for
-                # this attribute.
-                self._writeDisconnected = True
-                result = self._closeWriteConnection()
-                return result
-        return None
+        if len(self.messageBuffer) == 0:
+            return None
+        result = self.splitAndSend()
+        if len(self.messageBuffer) == 0:
+            #self.stopWriting()
+            #Really stop writable event
+            self.reactor._poller.remove_usock(self.socket.UDTSOCKET)
+            self.reactor._poller.add_usock(self.socket.UDTSOCKET,
+                                           self.reactor._POLL_IN)
+        return result
 
 
     def _closeWriteConnection(self):
             connectResult = self.socket.connect_ex(self.realAddress)
         except udt.UDTException as ue:
             connectResult = ue[0]
+
+        #TODO
         if connectResult:
-            if connectResult == udt.EISCONN:
-                pass
+            #socket is connected
+            if connectResult == udt.ECONNSOCK:
+                #delete references
+                del self.doWrite
+                del self.doRead
+                # we first stop and then start, to reset
+                #any references to the old doRead
+                self.stopReading()
+                self.stopWriting()
+                self._connectDone()
+                return
+
             elif connectResult in (EASYNCRCV,):
                 self.startReading()
-                self.startWriting()
+                # self.startWriting()
                 return
             else:
                 self.failIfNotConnected(error.getConnectError((
             # we first stop and then start, to reset
             #any references to the old doRead
             self.startReading()
-            self.startWriting()
             self._connectDone()
         else:
-            # If I have reached this point without raising
-            #or returning, that means
-            # that the socket is connected.
-            del self.doWrite
-            del self.doRead
-            # we first stop and then start, to reset
-            #any references to the old doRead
-            #self.startReading()
+            self.startReading()
             self.startWriting()
 
     def _connectDone(self):
                 self.stopReading()
                 self.stopWriting()
                 self.startReading()
-                self.startWriting()
+                #self.startWriting()
                 return
             Connection.doWrite(self)
 

udt4twisted/udtepollreactor.py

             # this method in this file.
             if fd in other:
                 flags |= antievent
-                #FIXME for now remove and add again
+                #FIXME do nothing
                 if self._isUDT(xer):
-                    self._poller.remove_usock(fd)
-                    self._poller.add_usock(fd, flags)
+                    # self._poller.remove_usock(fd)
+                    # self._poller.add_usock(fd, flags)
+                    pass
                 else:
                     self._poller.remove_ssock(fd)
                     self._poller.add_ssock(fd, flags)
         try:
             #doesn't work with floats :/
             l = self._poller.wait(True, True, int(timeout*1000), True, True)
-        except IOError as err:
-            if err.errno == errno.EINTR:
+        except UDTException as ue:
+            if ue[0] == 6003:
                 return
-            raise
         #handle system sockets
         sread, swrite = l[2:]
+        #print sread, swrite
         self._handleSystemSocketSet(sread, self._POLL_IN)
         self._handleSystemSocketSet(swrite, self._POLL_OUT)
 
                         # disconnect us.
                         why = selectable.doWrite()
                         inRead = False
-                        if self._isUDT(selectable):
-                            gc.collect()
+                        # if self._isUDT(selectable):
+                        #     gc.collect()
+
             except:
                 # Any exception from application code gets logged and will
                 # cause us to disconnect the selectable.
                 why = sys.exc_info()[1]
                 log.err()
         if why:
-            if isinstance(fd, udt4.UDTSOCKET):
-                gc.collect()
             self._disconnectSelectable(selectable, why, inRead)