Date: Wed, 26 Jul 2000 16:43:49 EDT From: "Greg Thompson" <johnnyteardrop@hotmail.com> To: freebsd-net@freebsd.org Subject: socket() and ENOBUFS Message-ID: <20000726204349.79438.qmail@hotmail.com>
next in thread | raw e-mail | index | archive | help
net hackers, i have a multithreaded app in which each thread repeatedly opens a socket, sends some data, receives some data, then closes the socket. as such, the total number of open sockets is bounded by the number of threads. i'm finding that over time, i start getting ENOBUFS from my calls to socket(). if, in response to this, i make the code pause for somewhere between 10 and 60 seconds (i don't have an exact number), it can start opening sockets again. my questions are: what exactly is going on here? systat -mbufs shows the free pool drop down to the ~200 range. after killing the process, it seems to take some time for mbufs in use to be freed. is there a resource limit than can be raised on my system to postpone the blockage? i'm fairly new to freebsd. i've tried grepping through /usr/src/sys a bit to find the code that gets hit when a socket is created, but i've had no luck. i see the entry for the syscall in syscalls.master, but i don't see the code that gets hit when the syscall is invoked. how do i visually follow a syscall? thanks. -- -greg ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000726204349.79438.qmail>