[LAD] a *simple* ring buffer, comments pls?

Tim Blechmann tim at klingt.org
Mon Jul 11 21:49:21 UTC 2011


>> and the NPTL code in glibc *seems* to perform a memory barrier only on
>> sem_post().
> 
> Wouldn't that seem quite natural ? Semas provide one-way communication.
> It's the sem_post() that means there is an event to be seen by some
> other thread. So it has to make sure that any data related to it is
> visible to the receiver. The receiver taking the event (returning
> from sem_wait()), or checking for it (calling sem_wait()), is not
> meant to be an event for the other side. You need a second sema if
> events have to go both ways.

from my understanding, sem_post() implies a write barrier (stores have been 
executed before sem_post()) and sem_wait() a read barrier (loads have to be 
executed after sem_wait()).

tim




More information about the Linux-audio-dev mailing list