mdp = (struct mdesc *) mtemp.base;
mdp->fd = fd;
if(!mdp->refcount){
- sem_init(&mdp->sem, 1, 1);
+ sem_init(&mdp->sem, 0, 1);
mdp->refcount++;
}
}
if (mdp->fd < 0){
mdp->flags |= MMALLOC_ANONYMOUS;
- sem_init(&mdp->sem, 0, 1);
- }else{
- sem_init(&mdp->sem, 1, 1);
}
+ sem_init(&mdp->sem, 0, 1);
/* If we have not been passed a valid open file descriptor for the file
to map to, then open /dev/zero and use that to map to. */
if ((mbase = mmorecore(mdp, sizeof(mtemp))) != NULL) {
memcpy(mbase, mdp, sizeof(mtemp));
} else {
- THROWF(system_error,0,"morecore failed to get some memory!");
+ fprintf(stderr, "morecore failed to get some more memory!\n");
+ abort();
}
/* Add the new heap to the linked list of heaps attached by mmalloc */