Follow-up Comment #6, patch #8737 (project lwip):
There are two more things worth bringing up:
* Even with the warnings in rawapi.txt about thread safety, a programmer might
lull themselves into a (false) sense of security by thinking: "they warned us
about the thread safety, but they provided these helpful
LOCK_TCPIP_CORE/UNLOCK_TCPIP_CORE, so I'll use those in the 'right' places and
it will be great". That's the path we pursued. The particular problem with
tcpip timers was exposed when we tuned the system to minimize the wakeups.
* Some functions (as we've discovered recently) are not in the standard API,
and, yet, they do call into tcp_* methods -- the particular function that came
to bite us recently was the dhcp_release, which may ultimately close a
connection. Perhaps the "proper" solution here would have also been to go
through tcpip_callback.