Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!know!zaphod.mps.ohio-state.edu!sdd.hp.com!wuarchive!rice!rice!sun-spots-request From: gill!paul@uunet.uu.net (Paul Nordstrom) Newsgroups: comp.sys.sun Subject: lwp library infinite loop? Keywords: SunOS Message-ID: <1990Oct7.233932.7098@rice.edu> Date: 7 Oct 90 21:30:00 GMT Sender: sun-spots-request@rice.edu Organization: Sun-Spots Lines: 35 Approved: Sun-Spots@rice.edu Originator: spots@psyche.rice.edu X-Sun-Spots-Digest: Volume 9, Issue 351, message 14 I have been having a problem that I believe has to do with my use of the lightweight process library. I have a server program with a main thread that accepts socket connections, spins off a thread to talk to the user at the other end, and waits for the next connection. If a user thread detects an error with its socket connection (e.g. the user's application dies), it releases any resources it has acquired, and terminates itself with lwp_destroy. Most of the time, this seems to work just fine. However, on rare occasion (say, one time out of 30), when a thread terminates, the entire process goes into an infinite loop. To further complicate the issue, if I send the process a -TERM, the process continues on as if there had never been a problem!! Under normal operation, -TERM will terminate the process, i.e. I am not catching the signal intentionally. My first question is the following: Has anyone ever seen this kind of behavior before? Know of a fix? My second question is related, sort of. One time I was running the program under my debugger when the loop occurred. I thought, AHA!, I'll just break out and see where I am. Unfortunately, all I got was the instruction address, then my debugger crashed. So, my second question is regarding the availability of a program that will produce a load map of a program. ld has a flag for requesting a load map, but the map is so primitive as to be totally useless--no addresses! So, how can one find out in what module a particular instruction address might be found? Possibly relevant details: SunOS 4.0.1 3/60, 12MB application compiled with Oregon C++ Ver. 2.0.2 Any ideas, anyone? Post or mail, I read these groups. Thanks in advance for any help. Paul Nordstrom Gill & Co., L.P. uunet!gill!paul