(lwpCreate): Check for lwpNewContext() success.

This commit is contained in:
Markus Armbruster 2005-12-10 20:42:42 +00:00
parent e841fc0826
commit 588329ab35

View file

@ -146,7 +146,7 @@ lwpCreate(int priority, void (*entry)(void *), int stacksz, int flags, char *nam
struct lwpProc *newp; struct lwpProc *newp;
if (!(newp = malloc(sizeof(struct lwpProc)))) if (!(newp = malloc(sizeof(struct lwpProc))))
return 0; return NULL;
newp->flags = flags; newp->flags = flags;
newp->name = strdup(name); newp->name = strdup(name);
newp->desc = strdup(desc); newp->desc = strdup(desc);
@ -159,7 +159,12 @@ lwpCreate(int priority, void (*entry)(void *), int stacksz, int flags, char *nam
priority = LWP_MAX_PRIO - 1; priority = LWP_MAX_PRIO - 1;
if (LwpMaxpri < (newp->pri = priority)) if (LwpMaxpri < (newp->pri = priority))
LwpMaxpri = priority; LwpMaxpri = priority;
lwpNewContext(newp, stacksz); if (lwpNewContext(newp, stacksz) < 0) {
free(newp->name);
free(newp->desc);
free(newp);
return NULL;
}
lwpStatus(newp, "creating process structure %p (sbtm %p)", lwpStatus(newp, "creating process structure %p (sbtm %p)",
newp, newp->sbtm); newp, newp->sbtm);
if (flags & LWP_STACKCHECK) if (flags & LWP_STACKCHECK)