s->ssvm.ssvm_size = a->segment_size;
s->ssvm.i_am_master = 1;
s->ssvm.my_pid = getpid ();
- s->ssvm.name = format (0, "%s", a->segment_name);
+ s->ssvm.name = format (0, "%s%c", a->segment_name, 0);
s->ssvm.requested_va = sm->next_baseva;
rv = ssvm_master_init (&s->ssvm, s - sm->segments);
s->ssvm.ssvm_size = ~0;
s->ssvm.i_am_master = 1;
s->ssvm.my_pid = getpid ();
- s->ssvm.name = (u8 *) a->segment_name;
+ s->ssvm.name = format (0, "%s%c", a->segment_name, 0);
s->ssvm.requested_va = ~0;
/* Allocate a [sic] shared memory header, in process memory... */
s->ssvm.ssvm_size = a->segment_size;
s->ssvm.my_pid = getpid ();
- s->ssvm.name = (u8 *) a->segment_name;
+ s->ssvm.name = format (0, "%s%c", a->segment_name, 0);
s->ssvm.requested_va = sm->next_baseva;
rv = ssvm_slave_init (&s->ssvm, sm->timeout_in_seconds);
memset (f, 0, sizeof (*f));
f->nitems = data_size_in_bytes;
f->ooos_list_head = OOO_SEGMENT_INVALID_INDEX;
+ f->refcnt = 1;
goto found;
}
/* FALLTHROUGH */
svm_fifo_segment_header_t *fsh;
void *oldheap;
+ ASSERT (f->refcnt > 0);
+
+ if (--f->refcnt > 0)
+ return;
sh = s->ssvm.sh;
fsh = (svm_fifo_segment_header_t *) sh->opaque[0];