5e3023bef1
During a write, if there is no more buffer space for the user data, return the amount that was written instead of waiting until there is free space. If nothing has been written yet, then block as before. This solves a deadlock that occurs if the user data is too large to fit in the available buffer: the write thread will block before any data is added to the write queue, leaving no possibility that more buffers will free up when they are ACKed (since they have not yet been sent). The write thread will then block forever and hold all of the buffers. |
||
---|---|---|
.. | ||
arp | ||
devif | ||
icmp | ||
icmpv6 | ||
igmp | ||
iob | ||
local | ||
loopback | ||
neighbor | ||
netdev | ||
pkt | ||
procfs | ||
route | ||
socket | ||
tcp | ||
udp | ||
utils | ||
.gitignore | ||
Kconfig | ||
Makefile | ||
net_initialize.c | ||
README.txt |
README ====== Directory Structure =================== nuttx/ | `- net/ | +- arp - Address resolution protocol (IPv4) +- devif - Stack/device interface layer +- icmp - Internet Control Message Protocol (IPv4) +- icmpv6 - Internet Control Message Protocol (IPv6) +- iob - I/O buffering logic +- local - Unix domain (local) sockets +- loopback - Local loopback +- neighbor - Neighbor Discovery Protocol (IPv6) +- netdev - Socket network device interface +- pkt - "Raw" packet socket support +- socket - BSD socket interface +- route - Routing table support +- tcp - Transmission Control Protocol +- udp - User Datagram Protocol `- utils - Miscellaneous utility functions +----------------------------------------------------------------+ | Application layer | +----------------------------------------------------------------+ +----------------------------------------------------------------+ | Socket layer (socket/) | +----------------------------------------------------------------+ +------------++--------------------------------------------------+ | Network || Protocol stacks (arp, ipv6, icmp, pkt, tcp, udp) | | Device |+--------------------------------------------------+ | Interface |+------------------------------------++------------+ | (netdev/) || Network Device Interface (devif/) || Utilities | +------------++------------------------------------++------------+ +----------------------------------------------------------------+ | Network Device Drivers | +----------------------------------------------------------------+