Szymon Kulec
Name | LOAD-LOAD | L-S | S-S | S-L |
---|---|---|---|---|
Full barrier (lock) | ||||
Aquire fence | ✔ | ✔ | ||
Release fence | ✔ | ✔ | ||
No fence | ✔ | ✔ | ✔ | ✔ |
0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 128 |
head:0 | tail:0 |
0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 128 |
head:0 | tail:0tail:16 |
0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 128 |
-8|5 | head:0 | tail:16 |
0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 128 |
-8|5 8|5 | ..data.. | head:0 | tail:16 |
Head | Tail | Length | |
---|---|---|---|
Writer | Volatile.Read | Interlocked.Add | Volatile.Write x2 |
Reader | Volatile.Write | - | Volatile.Read |
public interface IBus
{
void Publish<TMessage>(ref TMessage msg)
where TMessage : struct;
void Send<TMessage>(ref TMessage msg,
ActorId receiver)
where TMessage : struct;
}
Edsger W. Dijkstra
Szymon Kulec