On 05.09.2013 14:09, Etienne Sandré-Chardonnal wrote: > Hi, > > Did you see this in the doc?: > *Note:*The returnedQTcpSocketobject cannot be used from another thread. > If you want to use an incoming connection from another thread, you need > to overrideincomingConnection().
In fact we did override incomingConnection(). Creating the QTcpSocket manually. But maybe QTcpSockets can not be moved between threads? This is a opensource project so: incoming connection are not queued: https://github.com/bzeller/tufao/blob/master/src/priv/tcpserverwrapper.cpp#L28 socket is created here (without a parent): https://github.com/bzeller/tufao/blob/master/src/httpserver.cpp#L81 https://github.com/bzeller/tufao/blob/master/src/httpserver.cpp#L100 pushed to the thread: https://github.com/bzeller/tufao/blob/master/src/priv/workerthread.cpp#L56 I know moving the socket descriptor would be better but the design of the library does not really fit that approach. > > (From Qt 4.8.1) > > > 2013/9/5 Benjamin Zeller <zeller.benja...@web.de > <mailto:zeller.benja...@web.de>> > > Hello again, > > ok after digging some more its clear that the E_AGAIN or E_WOULDBLOCK > error means that there are no connections available to open. That makes > no sense because i opened 20 connections in a row, but only the > first 6 are handled and then the following 6 and so on. > > What could possibly delay the notification of new incoming connecions > until another one is handled? > > On 05.09.2013 13:04, Benjamin Zeller wrote: > > Hello, > > > > not sure if i just ran into a bug or if i do something wrong: > > > > Basically i have a QTcpServer accepting connections, after a > connection > > comes in a QTcpSocket is created and pushed to a workerthread to > handle > > it (moveToThread). > > > > But after 6 connections the QTcpServer stops accepting connections > > (seems to be releated to receiving a EAGAIN error) until the first 6 > > are served (but i openend 20 connections at once from my testcode). > > > > Then it continues with the next 6 and i'm pretty sure the mainloop is > > not blocked, because when i pause with the debugger its always > waiting > > inside exec(). > > > > This happens on Linux, i did not test yet with other operating > systems. > > > > Anyone ran into something similar? > > > > _______________________________________________ > > Interest mailing list > > Interest@qt-project.org <mailto:Interest@qt-project.org> > > http://lists.qt-project.org/mailman/listinfo/interest > > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org <mailto:Interest@qt-project.org> > http://lists.qt-project.org/mailman/listinfo/interest > > > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest