Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/Documentation/litmus-tests/rcu/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 704 B image not shown  

Quelle  RCU+sync+read.litmus   Sprache: unbekannt

 
Spracherkennung für: .litmus vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

C RCU+sync+read

(*
 * Result: Never
 *
 * This litmus test demonstrates that after a grace period, an RCU updater always
 * sees all stores done in prior RCU read-side critical sections. Such
 * read-side critical sections would have ended before the grace period ended.
 *
 * This is one implication of the RCU grace-period guarantee, which says (among
 * other things) that an RCU read-side critical section cannot span a grace period.
 *)

{
int x = 0;
int y = 0;
}

P0(int *x, int *y)
{
 rcu_read_lock();
 WRITE_ONCE(*x, 1);
 WRITE_ONCE(*y, 1);
 rcu_read_unlock();
}

P1(int *x, int *y)
{
 int r0;
 int r1;

 r0 = READ_ONCE(*x);
 synchronize_rcu();
 r1 = READ_ONCE(*y);
}

exists (1:r0=1 /\ 1:r1=0)

[ Dauer der Verarbeitung: 0.41 Sekunden  ]