Lines Matching refs:WRITE_ONCE
277 a = READ_ONCE(*X); WRITE_ONCE(*X, b);
285 WRITE_ONCE(*X, c); d = READ_ONCE(*X);
296 (*) 컴파일러가 READ_ONCE() 나 WRITE_ONCE() 로 보호되지 않은 메모리 액세스를
592 WRITE_ONCE(P, &B)
619 WRITE_ONCE(P, &B);
649 WRITE_ONCE(P, &B);
651 WRITE_ONCE(*Q, 5);
714 WRITE_ONCE(b, 1);
718 하나, READ_ONCE() 도 WRITE_ONCE() 도 선택사항이 아니라 필수사항임을 부디
720 또다른 로드와 조합할 수 있습니다. WRITE_ONCE() 가 없다면, 컴파일러는 'b' 로의
738 WRITE_ONCE(b, 1);
742 WRITE_ONCE(b, 1);
751 WRITE_ONCE(b, 1); /* BUG: No ordering vs. load from a!!! */
753 /* WRITE_ONCE(b, 1); -- moved up, BUG!!! */
756 /* WRITE_ONCE(b, 1); -- moved up, BUG!!! */
780 WRITE_ONCE(b, 1);
783 WRITE_ONCE(b, 2);
796 WRITE_ONCE(b, 1);
799 WRITE_ONCE(b, 2);
807 WRITE_ONCE(b, 2);
819 WRITE_ONCE(b, 1);
822 WRITE_ONCE(b, 2);
835 WRITE_ONCE(b, 1);
842 WRITE_ONCE(b, 1);
854 WRITE_ONCE(b, 1);
856 WRITE_ONCE(b, 2);
858 WRITE_ONCE(c, 1); /* BUG: No ordering against the read from 'a'. */
903 최적화로 없애버렸을 겁니다. READ_ONCE() 와 WRITE_ONCE() 의 주의 깊은
941 WRITE_ONCE(a, 1);
943 WRITE_ONCE(b, 2); x = READ_ONCE(b);
953 WRITE_ONCE(b, &a); x = READ_ONCE(b);
963 WRITE_ONCE(x, 1); if (r2 = READ_ONCE(x)) {
965 WRITE_ONCE(y, 1);
978 WRITE_ONCE(a, 1); }---- --->{ v = READ_ONCE(c);
979 WRITE_ONCE(b, 2); } \ / { w = READ_ONCE(d);
981 WRITE_ONCE(c, 3); } / \ { x = READ_ONCE(a);
982 WRITE_ONCE(d, 4); }---- --->{ y = READ_ONCE(b);
1423 WRITE_ONCE(u, 1);
1443 WRITE_ONCE(v, 1);
1511 하지만, READ_ONCE() 와 WRITE_ONCE() 는 특정 액세스들에 대해서만 동작하는
1523 READ_ONCE() 와 WRITE_ONCE() 함수는 싱글 쓰레드 코드에서는 문제 없지만 동시성이
1540 즉, READ_ONCE() 와 WRITE_ONCE() 는 여러 CPU 에서 하나의 변수에 가해지는
1635 컴파일러가 그런 잘못된 추측을 하지 않도록 WRITE_ONCE() 를 사용하세요:
1637 WRITE_ONCE(a, 0);
1639 WRITE_ONCE(a, 0);
1669 WRITE_ONCE() 를 사용하세요:
1673 WRITE_ONCE(msg, get_message());
1674 WRITE_ONCE(flag, true);
1685 READ_ONCE() 와 WRITE_ONCE() 를 사용해야 함을 기억해 두세요. 만약 그런
1687 READ_ONCE() 와 WRITE_ONCE() 는 필요치 않습니다. (근래의 리눅스 커널에서
1692 컴파일러는 READ_ONCE() 와 WRITE_ONCE() 뒤의 READ_ONCE() 나 WRITE_ONCE(),
1697 WRITE_ONCE() 가 좀 더 안목 높은 선택입니다: READ_ONCE() 와 WRITE_ONCE()는
1701 READ_ONCE() 와 WRITE_ONCE() 가 일어난 순서도 지켜줍니다, CPU 는 당연히
1720 되는 경우를 가능하게 합니다. 이걸 방지하기 위해 WRITE_ONCE() 를
1724 WRITE_ONCE(b, a);
1726 WRITE_ONCE(b, 42);
1746 WRITE_ONCE() 의 사용은 스토어 티어링을 방지합니다:
1748 WRITE_ONCE(p, 0x00010002);
1765 READ_ONCE() 나 WRITE_ONCE() 도 없고 volatile 마킹도 없기 때문에,
1768 스토어 티어링을 초래할 겁니다. 이 예에서도 READ_ONCE() 와 WRITE_ONCE()
1772 WRITE_ONCE(foo2.b, READ_ONCE(foo1.b));
1775 그렇지만, volatile 로 마크된 변수에 대해서는 READ_ONCE() 와 WRITE_ONCE() 가
1777 READ_ONCE(jiffies) 라고 할 필요가 없습니다. READ_ONCE() 와 WRITE_ONCE() 가
2260 WRITE_ONCE(*A, a); WRITE_ONCE(*E, e);
2262 WRITE_ONCE(*B, b); WRITE_ONCE(*F, f);
2263 WRITE_ONCE(*C, c); WRITE_ONCE(*G, g);
2265 WRITE_ONCE(*D, d); WRITE_ONCE(*H, h);
2719 WRITE_ONCE(*B, b);
2722 WRITE_ONCE(*E, e);
2769 WRITE_ONCE(*A, V);
2770 WRITE_ONCE(*A, W);
2772 WRITE_ONCE(*A, Y);
2791 READ_ONCE() 와 WRITE_ONCE() 는 반드시 존재해야 함을 알아두세요. 그런 종류의
2792 아키텍쳐에서 READ_ONCE() 와 WRITE_ONCE() 는 이 문제를 막기 위해 필요한 일을
2793 뭐가 됐든지 하게 되는데, 예를 들어 Itanium 에서는 READ_ONCE() 와 WRITE_ONCE()
2809 따라서, 쓰기 배리어나 WRITE_ONCE() 가 없다면 *A 로의 V 값의 저장의 효과는
2815 는, 메모리 배리어나 READ_ONCE() 와 WRITE_ONCE() 없이는 다음과 같이 변형될 수