Find out that this happens while in poll.

вт, 30 июн. 2020 г. в 15:45, Oleg Evseev <ev.m...@gmail.com>:

> Hi all,
>
> I wonder how can I debug
> DEBUGASSERT(pholder != NULL) in function nxsem_allocholder in file
> semaphore/sem_holder.c that happens after some time reading a lot of
> messages from can bus in can_reciever task?
>
> Task  looks like this (CAN dev is opened as shared file with
> file_open(&CANmodule->file, "/dev/can0", O_RDWR)):
>
> pollfd fds[1];
> fds[0].fd = -1;
> fds[0].ptr = CANmodule->file ;
> fds[0].events = POLLIN | POLLFILE;
>
> while (!_thread_should_exit) {
>     int ret = poll(fds, sizeof(fds) / sizeof(fds[0]), 1000);
>
>     if (fds[0].revents & POLLIN) {
>         /* Read the RX message */
>         CANreceive();
>     }
> }
>
> void CANreceive(CANmodule_t *CANmodule){
> struct can_msg_s msg = {};
> ssize_t nbytes;
>
>     nbytes = file_read(&CANmodule->file, &msg,  sizeof(struct can_msg_s) );
>     ...
> }
>
> Thanks in advance for any help.
>
> --
> With regards,
> Oleg.
>


-- 
С Уважением,
Евсеев Олег.

Reply via email to