thanks for coming again:) I accidently recently read some of your posts at Dmitriy's lock-free. I think we are reaching to one place in some keys of the backend engineering:)
As for this idea, I am not sure I fully understand you. But for allowing a C struct like slot in HL/RB, it is a not trivial thing.
As you may recall we discussed in your first post(and this group's first post^_^), it is not trivial to guarantee the atomicity(then the thread-safe) of consuming an Object slot. This also applies to your C struct like slot.
Assumed we just return the address of one slot, who knows the whole slot has been consumed by consumer? we need a interaction from consumer to indicate this. If we rely on copying, then we lose the direction. Although copying may be possible, this is related to many memory operations on bus plus a mfence. This makes non-full-fence HL full-fence-ed like the Disruptor.
If you have some reading to landz's source, I use one off-heap area(array) with corresponding to the HyperLoop in z's http module. This just adds a indirection cost of one memory addressing. (We also indeed discuss this schema in your first post, but we do not discuss any practical case there.)
But this has not been finished:( But I have not seen any barrier for this. I just to finish the primary module supporting now. I plan to continue the http module work today or tomorrow.
Finally, your this request is specially interesting for some reasons. I admit that I have not fully thought whether the interaction from consumer to producer become simple or stay complex. But I, personally, do not like the whole complex work to drive Disruptor's RB(I just say this for the current structure of Disruptor, not for the idea of Disruptor and the men behind that idea). Maybe I or we can brain more in some day.
best regards,
Jin