Commit 418c3610 authored by Geoff Simmons's avatar Geoff Simmons

trackrdrd: now attempting a read memory barrier in the VSL reader

           thread after copying from VSM, and a write barrier in
           the worker thread before sending the data
parent 00c3061b
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
#include <dlfcn.h> #include <dlfcn.h>
#include "vsb.h" #include "vsb.h"
#include "vmb.h"
#include "vpf.h" #include "vpf.h"
#include "libvarnish.h" #include "libvarnish.h"
...@@ -637,6 +638,7 @@ append(dataentry *entry, enum VSL_tag_e tag, unsigned xid, char *data, ...@@ -637,6 +638,7 @@ append(dataentry *entry, enum VSL_tag_e tag, unsigned xid, char *data,
entry->data[entry->end] = '&'; entry->data[entry->end] = '&';
entry->end++; entry->end++;
memcpy(&entry->data[entry->end], data, datalen); memcpy(&entry->data[entry->end], data, datalen);
VWMB();
entry->end += datalen; entry->end += datalen;
if (entry->end > dtbl.w_stats.data_hi) if (entry->end > dtbl.w_stats.data_hi)
dtbl.w_stats.data_hi = entry->end; dtbl.w_stats.data_hi = entry->end;
......
...@@ -130,7 +130,7 @@ wrk_send(void **mq_worker, dataentry *entry, worker_data_t *wrk) ...@@ -130,7 +130,7 @@ wrk_send(void **mq_worker, dataentry *entry, worker_data_t *wrk)
AN(mq_worker); AN(mq_worker);
/* XXX: report entry->incomplete to backend ? */ /* XXX: report entry->incomplete to backend ? */
VMB(); VRMB();
errnum = mqf.send(*mq_worker, entry->data, entry->end, errnum = mqf.send(*mq_worker, entry->data, entry->end,
entry->key, entry->keylen, &err); entry->key, entry->keylen, &err);
if (errnum != 0) { if (errnum != 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment