This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

BSD send() => BSD_ENOMEM

Hi,

I'm actually implementing a webserver with multiple threads and sockets listening to port 80.

The MDK is version 5.29.

Assuming the BSD send() can be called from different threads for different sockets, I don't understand the return value BSD_ENOMEM, which I sometimes get.

All these error return values are not really described in detail. "Not enough memory" for BSD_ENOMEM is not really helpful.

  • Which memory got low?
    I tried to play with the Ethernet core memory (NET_MEM_POOL_SIZE), the heap and all involved stack sizes of the KEIL driver.
    No luck. Can't get rid of this error.

It does not happen very often. Let's say 1 out of 5000 send() calls.

It happens in blocking & non-blocking mode.

Any help is appreciated.

Michael