home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.protocols.tcp-ip
- Path: sparky!uunet!gatech!europa.asd.contel.com!darwin.sura.net!spool.mu.edu!yale.edu!qt.cs.utexas.edu!news.Brown.EDU!noc.near.net!chpc.chpc.org!ralf
- From: ralf@chpc.org (Ralph Valentino)
- Subject: RPC memory cleanup
- Message-ID: <1992Sep8.152259.28235@chpc.org>
- Organization: Center For High Performance Computing
- Date: Tue, 8 Sep 1992 15:22:59 GMT
- Lines: 24
-
- I've written an RPC service and it works, except that it has a memory
- leak. I've added a number of xdr_free()'s everywhere I could think to
- put one and that cut the leak from 1k/request to 100bytes/request, but
- I just can't figure out where to put the remainder. (I'm assuming
- it's a missing rpc related *_free() because the program itself never
- malloc()'s.)
-
- Is there a list of which calls need [xdr|svc]_free()'s. The nutshell
- book isn't very useful here. Does anyone have a suggestion as to how
- I can approach tracking this down? The server uses tcp and udp, both
- client and server calls, one way, followup, and broadcast datagrams,
- and does it's own multitasking in a single thread of execution (no
- threads or forks). It handles 1000+ requests a day, so even 100 bytes
- per request becomes significant.
-
- If it matters, the machines are a number of Decstation 5100's and
- 3100's. The _svc.c _clnt.c and _xdr.c files were created through
- rpcgen (though I had to hand modify _xdr.c by hand).
-
- -Ralph
- ===============
- Ralph Valentino (ralf@chpc.org) (ralf@wpi.wpi.edu)
- Hardware Engineer, Worcester Polytechnic Institute
- Center for High Performance Computing, Marlborough MA
-