Because this socket is opened as NONBLOCK, and read() returns "0" when there is no new received data (-1 for some error), this section is spinning so rapid unnecessarily like below (I inserted debug print).
I think polling at 10kHz is enough to run dynpick at 1kHz.
With this PR, this node is running with 10~30% of single thread usage.
How about like this implement?
I found out this node is using 100% of 1 thread, and then I found this section has the cause of that.
https://github.com/tork-a/dynpick_driver/blob/507cdab0c0af809fc2d49e19d33a7775fef81e85/src/main.cpp#L100-L114
Because this socket is opened as NONBLOCK, and read() returns "0" when there is no new received data (-1 for some error), this section is spinning so rapid unnecessarily like below (I inserted debug print).
I think polling at 10kHz is enough to run dynpick at 1kHz. With this PR, this node is running with 10~30% of single thread usage. How about like this implement?