Re: Problem with select/5 on AF_INET sockets with Windows 7
Fx <[email protected]> Thu, 19 Feb 2015 19:58:56 +0100
| Newsgroups | gmane.comp.gnu.prolog.bugs |
|---|---|
| Message-ID | <[email protected]> |
Daniel, Thank you very much for your answer, and this is a great news for 1.4.5 !!! I=92ll be patient and wait for the official distribution. Regards, Fran=E7ois-Xavier. Le 17 f=E9vr. 2015 =E0 13:32, Daniel Diaz <[email protected]> a = =E9crit : > Hi, > = > sorry for the late reply. Thank you for this bug report. > = > The bug is fixed in the last git version. Will be fixed in next 1.4.5 > = > Daniel > = > = > = > Le 27/01/2015 12:44, [email protected] a =E9crit : >> Dear Daniel, >> = >> I am working on a specific http server for gnu prolog (1.4.4), and i dis= covered >> a strange comportment under windows 7 (32) with the select/5 predicate. >> = >> The simple test below works fine on a OSX (maybe all unix) system but wi= ll >> return a system error under Windos 7 (32) , "Bad File Descriptor": >> = >> ERROR : Failed to start server : error(system_error(Bad file >> descriptor),select/5) >> = >> To test, launch one of the two test cases and open an internet browser to >> http://127.0.0.1:8080/ for example, or change the 127.0.0.1 by your IP. >> = >> %- Program Test with Select ----------------------------------- >> = >> worker_run(Socket, Client, StreamIn, StreamOut):- write('i am a working = worker >> ...'), nl. >> = >> server_test_with_select:- >> socket('AF_INET', Socket), >> socket_bind(Socket, 'AF_INET'(Host, 8080)), >> socket_listen(Socket,10), >> catch( server_loop_with_select(Socket),E, >> ( socket_close(Socket), >> format( "ERROR : Failed to start server : ~w~n", [E] ) >> )). >> = >> server_loop_with_select(Socket):- >> repeat, >> select([Socket],ReadyReads,[Socket],[],0), >> worker_run(Socket, Client, StreamIn, StreamOut), >> fail. >> = >> %- End of Program Test with Select ----------------------------------- >> = >> When not using usefull select/5 and directly use the socket_accept/4 pre= dicate >> the server works well. >> = >> = >> %- Program Test without Select ----------------------------------- >> = >> worker_run(Socket, Client, StreamIn, StreamOut):- write('i am a working = worker >> ...'), nl. >> = >> server_test_without_select:- >> socket('AF_INET', Socket), >> socket_bind(Socket, 'AF_INET'(Host, 8080)), >> socket_listen(Socket,10), >> catch( server_loop_without_select(Socket),E, >> ( socket_close(Socket), >> format( "ERROR : Failed to start server : ~w~n", [E] ) >> )). >> = >> server_loop_without_select(Socket):- >> repeat, >> socket_accept(Socket, Client, StreamIn, StreamOut), >> worker_run(Socket, Client, StreamIn, StreamOut), >> fail. >> = >> %- End of Program Test without Select ----------------------------------- >> = >> = >> Is it a known bug and did you plan to fix it in a future version ? >> = >> = >> Best Regards, >> = >> Fx NION. >> = >> = >> _______________________________________________ >> Bug-prolog mailing list >> [email protected] >> https://lists.gnu.org/mailman/listinfo/bug-prolog >> = > = > = > -- = > Ce message a ete verifie par MailScanner > pour des virus ou des polluriels et rien de > suspect n'a ete trouve. > =