Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Kaz Kylheku <kaz@kylheku.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Failing Malloc |
| Date | 2012-09-12 21:36 +0000 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <20120912141638.202@kylheku.com> (permalink) |
| References | <k2qq2i$aba$1@speranza.aioe.org> |
On 2012-09-12, Eric <nospam@nospam.com> wrote: > Hi What is a good way to respond to a failed Malloc (returns Null)? I do > not want to call Abort or Exit immediately. Strategies for out of memory (OOM) handling are a fairly tough problem, with a fairly broad scope. Calling exit is not adequate in nontrivial programs, because the module in which OOM occured doesn't have the authority to shut down the program, let alone abruptly. One way is to implement exception handling, so that your code can take recovery actions in an orderly way based on speculations along the lines of "what if out of memory happens in this dynamic contour? or this one?" You can set a side a chunk of reserve memory so that you can when OOM happens, it's actually just a warning: the program is informed that OOM has occured, but is able to continue thanks to the reserved memory (which is hopefully enough for recovery actions). If the program is able to fully recover, so that it does not have to terminate, then it can reset this machinery for the sake of future occurences. No matter what you do, this is difficult to *test*, because programs make memory allocation requests in many places and in many states. So the different possible failure scenarios are huge. What if the first N allocation requests succeed, and the N+1-th fails? Now consider that for a large range of N, multiplied by variation in the program's execution based on inputs ... In general, all error checking and recovery type code which rarely executes only under special conditions is difficult to test. If it is not tested (or else formally verified), it only expresses the coder's best intentions to do something about the situation. :) -- If you ever need any coding done, I'm your goto man!
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Failing Malloc Eric <nospam@nospam.com> - 2012-09-12 20:07 +0000
Re: Failing Malloc Xavier Roche <xroche@free.fr.NOSPAM.invalid> - 2012-09-12 22:12 +0200
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-12 14:25 -0700
Re: Failing Malloc Andrew Cooper <andrew@nospam.example.com> - 2012-09-12 21:21 +0100
Re: Failing Malloc Eric <nospam@nospam.com> - 2012-09-12 20:34 +0000
Re: Failing Malloc Paul N <gw7rib@aol.com> - 2012-09-12 13:46 -0700
Re: Failing Malloc Eric <nospam@nospam.com> - 2012-09-13 20:21 +0000
Re: Failing Malloc Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-13 17:31 -0400
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 17:57 -0400
Re: Failing Malloc John Gordon <gordon@panix.com> - 2012-09-12 20:55 +0000
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-12 14:33 -0700
Re: Failing Malloc falk@rahul.net (Edward A. Falk) - 2012-09-13 22:43 +0000
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 17:37 -0400
Re: Failing Malloc Johann Klammer <klammerj@NOSPAM.a1.net> - 2012-09-13 08:57 +0200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 17:20 -0400
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-13 09:27 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 17:56 -0400
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-13 10:28 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-12 18:57 -0400
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-12 16:21 -0700
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-13 12:07 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 13:18 -0400
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-14 07:37 +1200
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 16:05 -0400
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-13 14:21 -0700
Re: Failing Malloc James Kuyper <jameskuyper@verizon.net> - 2012-09-13 17:38 -0400
Re: Failing Malloc William Ahern <william@wilbur.25thandClement.com> - 2012-09-13 14:03 -0700
Re: Failing Malloc Ian Collins <ian-news@hotmail.com> - 2012-09-15 10:01 +1200
Re: Failing Malloc Philip Lantz <prl@canterey.us> - 2012-09-14 02:50 -0700
Re: Failing Malloc Kaz Kylheku <kaz@kylheku.com> - 2012-09-12 21:36 +0000
Re: Failing Malloc Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-12 17:41 -0400
Re: Failing Malloc Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2012-09-12 16:07 -0600
Re: Failing Malloc "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2012-09-12 16:03 -0700
Re: Failing Malloc Kenneth Brody <kenbrody@spamcop.net> - 2012-09-12 19:24 -0400
Re: Failing Malloc The Great Firewall of China Blue <chine.bleu@yahoo.com> - 2012-09-12 16:34 -0700
Re: Failing Malloc Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-09-13 00:14 -0700
csiph-web