Beispiel #1
0
void signal_handle() {
    ras_msg_t data = mq_recv_msg(TELL_MSG, -1, client_id);
    if(data.type != -1) {
        printf("%s", data.msg);
        fflush(stdout);
        client_signal();
    }
}
Beispiel #2
0
static void mq_recv_msg_noblock( MQ_MODULE_E dest)
{
    mqd_t id;
    fd_set rfds;
    unsigned long max_fd;
    int ret;
    MQ_MODULE_E from;
    char recv_data[64];

    memset(recv_data, '\0', sizeof(recv_data));

    id =  mq_get_id (dest);

    if(id < 0)
    {
        DEBUG_PRINTF("mq_get_id failed\n");
        return;
    }
    
    max_fd = id + 1;
    
    while(1)
    {
        FD_ZERO(&rfds);
        FD_SET(id, &rfds);
    
        ret = select(max_fd, &rfds,  NULL, NULL, NULL);
        if (ret >= 0)
        {
            if (FD_ISSET(id, &rfds))
            {
                ret = mq_recv_msg(&from, dest, recv_data, sizeof(recv_data));
                if(ret<0)
                {
                    DEBUG_PRINTF("recv_error, ret =%d\n", ret);
                }
                else
                {
                    DEBUG_PRINTF("recv_data=%s, from=%d\n", recv_data, from);
                }
            }
        }
    }
    return;
}