« Return to Thread: TCP/IP stack and threading question

TCP/IP stack and threading question

by Tim Hatton :: Rate this Message:

Reply to Author | View in Thread

Hi,
I am trying to write a fairly straight forward eCos app and I am trouble understanding how the TCP/IP stack should behave with application threads (or vice versa).

I am using the FreeBSD TCP/IP stack and I have written a small C++ application. My app has a cyg_user_start function which currently creates and resumes a single thread. In my thread I successfully initialise the network interface with init_all_network_interfaces(); and then go into a loop which is (at the moment at least) a simple CLI (reading commands from the serial port and replies to it).

Now, what I have observed is that when I am in my thread's loop I can't ping to the eCos machine (even though the link is up). If I exit from my thread,  I can ping it no problem.

So, what am I doing wrong here? Do I need to have an application thread that handles the "background" TCP/IP stuff link answering ping? I was assuming this stuff would just work but now I suspect I've misunderstood something fundamental.
Any advice would be grately appreciated.
Thanks in advance,
Best regards,
Tim Hatton

 « Return to Thread: TCP/IP stack and threading question