last time I checked the code, I don't think it was using blocking sockets, so it would 'hang' from time to time processing data if there was nothing to read.......