Subject: Re: m_get(), MGET(), and MGETHDR() with M_WAIT
To: Chris G Demetriou <Chris_G_Demetriou@ux2.sp.cs.cmu.edu>
From: Thorsten Lockert <tholo@SigmaSoft.COM>
Date: 06/05/1996 15:59:24
> > > What i'm wondering is, in their 'well-documented' definitions, are
> > > they ever allowed to return NULL in that case?
> > Well, Stevens says that the return value of m_get() should always be checked,
> > but his argument for this seems rather off the mark.
> > Looking at the definition of MGET() and m_retry(), it's obvious that the
> > answer depends on whether `malloc(.., M_WAIT)' can ever return NULL.
> > It appears that it can, given that kmem_malloc() in vm_kern.c can.
> no, malloc(... M_WAIT) _cannot_ return NULL. Like i noted, that's the
> current implementation, and i'm not as much concerned about that as I
> am about what the code using m_get(... M_WAIT ...) _should_ be doing.
malloc(..., M_WAIT) is not allowed to return NULL. Checking for a NULL
return when called with M_WAIT is superflous. However, perhaps some of
the cases that now use _MWAIT and do check should be changed to M_NOWAIT?
Thorsten Lockert | firstname.lastname@example.org | Universe, n.:
1238B Page Street | email@example.com | The problem.
San Francisco, CA 94117 | firstname.lastname@example.org |