Hi, all

I upload the glib-2.0 library  from 2.38.2 to 2.44.1, then the cpu usage to 
100%.
After testing , I find the problem is caused by g_io_add_watch function. 
Following is the part code about the glib.

               struct sockaddr_can addr;
                struct ifreq ifr;
                int loopback = 0;
                gint fd;
                GIOChannel *io;
                guint ev_id;

                if (getenv("CANLOOPBACK"))
                                loopback = 1;

                memset(&addr, 0, sizeof(addr));
                memset(&ifr, 0, sizeof(ifr));
                fd = socket(PF_CAN, SOCK_RAW, CAN_RAW)

                addr.can_family = AF_CAN;

                strcpy(ifr.ifr_name,"can0");
ioctl(fd, SIOCGIFINDEX, &ifr
                addr.can_ifindex = ifr.ifr_ifindex;

                setsockopt(dcan->fd, SOL_CAN_RAW, CAN_RAW_LOOPBACK, &loopback, 
sizeof(loopback));

                 bind(dcan->fd, (struct sockaddr *) &addr, sizeof(addr))
                 io = g_io_channel_unix_new(fd);
                g_assert(io);
                g_io_channel_set_encoding(io, NULL, NULL);
                g_io_channel_set_buffered(io, FALSE);
                ev_id = g_io_add_watch(io, G_IO_IN, NULL, NULL); / ev_id = 
g_io_add_watch(io, G_IO_IN, my_function, NULL);

If any people know how to solve the problem, or any information may lead to 
this problem, please tell me .   Thanks very much

Neil


_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to