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

Reply via email to