RTS 6/9/04
How you do envision using the Shared Memory to send events over?
The abstractions I "support" or at least currenty think in may be too much, but again, they may be useful.
Here's the idea: There's a Circular Buffer of data when we "enqueue" things.
But, this circular queue is borken up into two pipes, a "control" pipe where you put things like HEADERS (to describe data coming down stream) and a "data" pipe (where you put RAW DATA, serialized data). This may be a bit much for what we are doing, but I don't know ... it may be worthwhile to keep the idea of a "control" pipe and "data" pipe seperate. The original reason for doing this was thit allows DMAs to go straight to the DATA pipe and not pullute control.
This may be way too much abstraction for us sending events on a queue, but before I rip it all oit, I thought I'd ask you.
PLUSSES:
+ Allows DMAs of data
+ seperate notions of control and data
+ Can put HEADERS on, other meta packets without touching "data"
MINUSES:
- More compexity
- May slow down (going to control pipe first to see what to read, then to the
data pipe)
The one nice thing about this system (regardless of whether we support contro pipes or not) is that we can have multiple readers and we only lock if we have to. With a little work, we can support hot connect/disconnect so we can attach monitors easily.
Thoughts?