From owner-freebsd-hackers Mon Jan 3 8:31: 9 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from gilgamesch.bik-gmbh.de (gilgamesch.bik-gmbh.de [194.233.237.194]) by hub.freebsd.org (Postfix) with ESMTP id BD020151DD for ; Mon, 3 Jan 2000 08:30:56 -0800 (PST) (envelope-from cracauer@gilgamesch.bik-gmbh.de) Received: (from cracauer@localhost) by gilgamesch.bik-gmbh.de (8.9.3/8.7.3) id RAA61451; Mon, 3 Jan 2000 17:30:27 +0100 (MET) Date: Mon, 3 Jan 2000 17:30:27 +0100 From: Martin Cracauer To: Steffen Merkel Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Limited amount of variables in a multithreaded programm? Message-ID: <20000103173027.A61058@cons.org> References: <001301bf5540$66b72610$0201a8c0@blade> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.4i In-Reply-To: <001301bf5540$66b72610$0201a8c0@blade>; from Steffen Merkel on Sun, Jan 02, 2000 at 05:42:43PM +0100 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG In <001301bf5540$66b72610$0201a8c0@blade>, Steffen Merkel wrote: > int ping(struct in_addr *ipaddress){ > int s; /* socket handle for socket()*/ > int ident = getpid() & 0xFFFF; /* to ident ICMP message */ > int hlen; /* Header length */ > struct sockaddr_in *to; /* used to prepare tohost */ > struct sockaddr tohost; /* where to send ping - for sendto() */ > struct sockaddr fromhost; > struct ip *ip; > struct icmp *icp; /* used to generate icmp message */ > struct timeval *timetp; /* temporary time storage structure */ > struct timeval actimetp; /* store current time */ > u_char outmessage[MAXPACKET]; /* message we send */ > u_char inmessage[MAXPACKET]; /* message we receive */ > int i,ret; > > int mx_dup_ck = 1024; > return(10); /* I removed the ping-routine and replaced it with > * "return(10);" for testing reasons */ > } In FreeBSD, a normal process (fork/exec) has a stack that grows automatically as needed. You don't have this for threaded programs (and it is difficult to do). It's a save guess that this amount of stack allocation is more than the default stack size for a threaded program, and the stack cannot grow automatically. Did you check out the classic model before tangling with pthreads? :-) Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer http://www.cons.org/cracauer/ BSD User Group Hamburg, Germany http://www.bsdhh.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message