Eric S. Raymond esr at
Mon May 28 03:38:12 UTC 2018

Hal Murray <hmurray at>:
> > I'm not clear what you mean by making it read-only.  Can you explain? 
> The current stuff has the sender set a ready bit and the receiver turn it 
> off.  That only works if you have one receiver.  Things like gpsmon can't run 
> while it is also being used by ntpd.
> You can make it read only for the receiver(s) with the following recipe:
>   there are two counters in the memory block, X and Y, initialized to 0 and -1
>   sender bumps X, updates data, copies X to Y
>   receiver checks Y for new data.  If new:
>     grab Y, grab data, grab X
>     if X==Y you win.  If not, try again.
> NB: the transmitter and receiver have to update/check X and Y in the opposite 
> order.

This is very close to the optimidtic-locking algorithm I invented for
client-site shm.

I don't think it can be made bakward-compatible with the existing one, though.
Which means we might as well write a new triver onforming to the POSIX
shared-memory interface.
		<a href="">Eric S. Raymond</a>

My work is funded by the Internet Civil Engineering Institute:
Please visit their site and donate: the civilization you save might be your own.

More information about the devel mailing list