Refactored code to fix a few things:
1) Initializing ptrs that are shared whenever shared memory region is
initialized doesn't work, since ProcA could reserve, write a bit, then
ProcB comes in in the middle screwing up the pointers. Fixed it up so
the memory region is zeroed out by the shared memory system instead, so
initialization doesn't need to happen.
2) Wasn't quite on spec with reserve functions: short reserves were only
allowed at the specific case of wrapping around the buffer. Otherwise
reservation doesn't happen whatsoever.
3) Notification calls can just assume that the user knows what they're
doing and won't call with more bytes than were reserved - cut out a
call, and makes the function a two liner, which is nice.
Whoops, didn't check for compile errors! To be fair, I was pretty
confident it wouldn't compile ANYWAY, since this computer still had
weird errors going on where it wouldn't build for whatever reason.
However, I've somehow managed to get rid of that issue too so...
*shrug*? Anyway, now it compiles. Haven't tested - will wait for John's
test function to actually do that.