Exemple #1
0
size_t
varyad_push(struct varyad **v, void *data, size_t size, int realloc)
{
    if (_avail(*v) < size + sizeof(size_t)) {
        if (!realloc) {
            errno = ENOMEM;
            return 0;
        } else {
            struct varyad *const tmp = _realloc(*v);
            if (!tmp) {
                return 0;
            } else {
                *v = tmp;
            }
        }
    }
    const size_t off = (*v)->rank ? _size(*v, (*v)->rank-1) : 0;
    memcpy(_head(*v) + off, data, size);
    _set_size(*v, (*v)->rank++, off + size);
    return (*v)->size;
}
Exemple #2
0
void UfsFileBase::set_size(offset_type newsize) {
    std::unique_lock<std::mutex> fd_lock(fd_mutex_);
    return _set_size(newsize);
}