1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 193 unchanged lines hidden (view full) ---

202
203 nxt_debug(task, "buf completion: %p %p", b, b->mem.start);
204
205 nxt_assert(data == b->parent);
206
207 mp = b->data;
208 nxt_mp_free(mp, b);
209
210 nxt_buf_parent_completion(task, parent);
211}
212
213
214void
215nxt_buf_parent_completion(nxt_task_t *task, nxt_buf_t *parent)
216{
217 if (parent != NULL) {
218 nxt_debug(task, "parent retain:%uD", parent->retain);
219
220 parent->retain--;
221
222 if (parent->retain == 0) {
223 parent->mem.pos = parent->mem.free;
224

--- 49 unchanged lines hidden (view full) ---

274 nxt_debug(task, "buf ts completion: %p %p", b, b->mem.start);
275
276 nxt_assert(data == b->parent);
277
278 mp = b->data;
279 nxt_mp_free(mp, b);
280 nxt_mp_release(mp);
281
275 if (parent != NULL) {
276 nxt_debug(task, "parent retain:%uD", parent->retain);
277
278 parent->retain--;
279
280 if (parent->retain == 0) {
281 parent->mem.pos = parent->mem.free;
282
283 parent->completion_handler(task, parent, parent->parent);
284 }
285 }
282 nxt_buf_parent_completion(task, parent);
283}
284
285
286nxt_buf_t *
287nxt_buf_make_plain(nxt_mp_t *mp, nxt_buf_t *src, size_t size)
288{
289 nxt_buf_t *b, *i;
290

--- 24 unchanged lines hidden ---