diff options
author | Dave Barach <dave@barachs.net> | 2017-08-07 09:35:25 -0400 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2017-08-10 00:13:08 +0000 |
commit | 52851e6aa9304054fd1059c8dd284abf8e532bf2 (patch) | |
tree | efe4334245044e342817b28d69ee208fba9952ec /src/svm/svm_fifo_segment.c | |
parent | b639b593372612fd3a55b3137b4fdd62df775d96 (diff) |
TCP proxy prototype
- Clean up internal API client registration
- Add proxy server
- Add a reference count to the svm fifo
Change-Id: I5ace1c85497062ed412d26ae76a9e6741af1e984
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/svm/svm_fifo_segment.c')
-rw-r--r-- | src/svm/svm_fifo_segment.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/svm/svm_fifo_segment.c b/src/svm/svm_fifo_segment.c index 86661e516a2..c04b9d8ccba 100644 --- a/src/svm/svm_fifo_segment.c +++ b/src/svm/svm_fifo_segment.c @@ -296,6 +296,7 @@ svm_fifo_segment_alloc_fifo (svm_fifo_segment_private_t * s, 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 */ @@ -344,6 +345,10 @@ svm_fifo_segment_free_fifo (svm_fifo_segment_private_t * s, svm_fifo_t * f, 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]; |