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 <[EMAIL PROTECTED]> http://www.cons.org/cracauer/
BSD User Group Hamburg, Germany http://www.bsdhh.org/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message