Albrecht Schlosser wrote: > Fabien Costantini wrote: >>> If this is so, then we could simply put >>> >>> #define USE_ASYNC_SELECT >>> >>> in the winsock2 conditional path, and that's it (?). >> I would like for this another MOD STR please, because I have the >> feeling if some of us reported it didn't seem to work in some >> configurations, it should merit appropriate testing for side effects >> before changing again the lib default internal behavior. > > Agreed, but nevertheless... > >> This said, Mike seems to confirm this should indeed work in the new >> winsck2 context, so I stay confident about such a change, >> but limited to only when winsock2 would be used. > > Yes, that's what I understood, too. > >> Btw,unless I miss something, we have today in the toolkit only the >> fluid app to test some (fd_add()/fd_remove()) of these features in the >> context of the shell output command window (thanks matt for using it >> here if I recall well!), so again; I would welcome any further test >> feedback about these api in an async context. > > I can confirm Ian's concern about USE_ASYNC_SELECT. I just enabled the > define, and tested my application with add_fd(). I'm sorry to say that > it doesn't work with my application :-( I double checked (disabled > USE_ASYNC_SELECT), and it worked as before. > > What the code does: When the program is started, it opens a tcp server > (listener) socket, and calls add_fd() to wait for socket events. > > When the program is started a second time, it tries to open the tcp > server socket, but this time it fails, because the socket already > exists. Then, it opens a client tcp socket, sends a message to the > server, and exits. Simple, but it works. > > If USE_ASYNC_SELECT is enabled, the server doesn't get the event, and > thus doesn't read the socket. I can see this with embedded debug > statements. The client, however, has sent the message, and exits anyway. > If another instance of the program is started, it gets error number > 10061 (WSAECONNREFUSED): connection refused. > > I can't test this further, now, but I can confirm that WSAAsyncSelect(), > as used in Fl_win32.cxx, *doesn't* work as expected. :-(
It would be useful to add this test program to FLTK as a unit test for Fl::add_fd, then we can work out the problems with async select... -- ______________________________________________________________________ Michael Sweet, Easy Software Products mike at easysw dot com _______________________________________________ fltk-dev mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk-dev
