how to monitor those task

vicui wrote on Friday, August 09, 2013:


like TELNET, FTP, SSH, HTTP server, it blocks in lwip_recv() function, how to monitor it is running or dead?

rtel wrote on Friday, August 09, 2013:

Not sure I understand your question.  Are you just asking how to tell if a task is still running?  If so then this is done in all the standard demos.  Have the task you are monitoring increment a number at key points in its functionality, then have a high priority monitoring task check the number is incrementing as expected.


vicui wrote on Friday, August 09, 2013:

yes, i need to monitor one task is running or not . but those task blocks in lwip_recv() function and never exist, there is no demo about it

richard_damon wrote on Friday, August 09, 2013:

One solution would be to have it not block with a large/infinite timeout, but to use a short timeout, and test for the time out, and when it happens set a flag to say you are running and go back into the block for a little bit. If the flag doesn’t get bumped over a time period longer than that timeout (or any other busy time the task might have) then you can assume something is wrong.

The one problem with this, is that there isn’t much you can really do if a task dies, as you don’t really know what might need to be cleaned up.  It isn’t like a process on a “big” computer which has a fully dedicated environment to run in and can be started anew.