On Thu, Jan 21, 2016 at 01:20:02PM -0500, Jim Starkey wrote: > On 1/21/2016 12:41 PM, Dimitry Sibiryakov wrote: > > 21.01.2016 18:20, Leyne, Sean wrote: > >> Operationally, your app will die/fail which you try to exceed the > >> Windows FD_Size value -- it is a OS level limit. > > Nope, it is truly set at compile time and only application-defined > > structures are used by OS. Problem is not a size of structure > > itself, but very ineffective methods to find out which socket is > > signaled after select() has returned. I wonder if someone tried to > > use bit-scanning instructions of modern x86 processors to solve the > > problem... > > Microsoft is now supporting the Linux poll() as WSAPoll(). Much more > intelligent data structures and is smart enough to wake up when the > remote end of a socket is closed. I don't know what platforms do or > don't support poll(), so select() would have to be conditional, but > poll() beats the pants off select().
For really large sets of sockets, epoll() would be even better. IIRC the FB3 code uses poll() if available, select() otherwise. On Windows, select() is used always. Anyway, IIRC we only use poll() or select() for connections belonging to one client so that technical limitations of that syscall should not matter for the client connections limit. Michal Kubecek ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel