AnsweredAssumed Answered

RTCS_FD_CLR() function

Question asked by Emanuele Trapani on Dec 9, 2015
Latest reply on Dec 11, 2015 by Emanuele Trapani

hi, i migrated from mqx 4.1 to mqx4.2, i use CW 10.6 and frmk64f.

in my application i used the RTCS_selectset() functionand it work properly; i read in the documentation of the rtcs that is recommended the use of the select() function. i seen the example and i try to use it with some changes. everything is ok till i use the RTCS_FD_CLR() function.

my application comunicates with my pc so i use a set of socket and i must check the activity of those sockets. i'm inside a while cycle and sometimes i need to add or remove a socket from the set. adding socket happens correctly but when i try to remove the socket from the set i have some problems:

-if i use the RTCS_FD_CLR() function, when the cycle come again on the select() function it return a error 0x1716 that in rtcs_err.h is RTCSERR_SOCK_EBADF. I seen that is a error returned when the select() function check if the socket is in the socket set.

if i do not use the RTCS_FD_CLR(), the select() function return the same error.

so my question is: there is a way to use correctly the RTCS_FD_CLR() function? or there is a way to know if i use correctly this function?


now i'm trying to clear all the set and i add again all the socket i need.


a very semplified version of my cycle is:


     err=select(active_socket_number,&sock_set,NULL,NULL, 0);
          if(RTCS_FD_ISSET(serv_sock, &sock_set)){
          } else {
               if (rx_count==RTCS_ERROR) {


ps: i use multiple select() function of different set of sockets in different task. But those different set may contain the same socket. can this be the problem?