1
Objective-C 런타임 함수의 스레드 안전성은 어떻게 보장됩니까? 거기 아무도 없나요? 나는 runtime.h에 선언 된 함수에 대해 이야기하고있다 (예 : class_lookupMethod, objc_setAssociatedObject).Objective-C 런타임 함수에 대한 스레드 안전성을 보장합니까?
Objective-C 런타임 함수의 스레드 안전성은 어떻게 보장됩니까? 거기 아무도 없나요? 나는 runtime.h에 선언 된 함수에 대해 이야기하고있다 (예 : class_lookupMethod, objc_setAssociatedObject).Objective-C 런타임 함수에 대한 스레드 안전성을 보장합니까?
대다수는 thread safe - swizzling 등 - 그러나 일부는 그렇지 않습니다. 방법을 찾아야한다. 연결된 개체가 아닐 수도 있습니다. 명시 적으로 문서화되지 않은 경우 스레드 안전하지 않은 것으로 간주해야합니다.
런타임 소스를 확인하십시오. 그 안에있는 의견은 밝게 비춰질 수 있습니다. 그리고 문서에서 설명을 요구하는 버그를 제출하십시오 (이미 명확하지 않은 경우).
감사합니다. 조명입니다. 구현이 현재 스레드 안전을 보장하기 위해 그 시점에서 멀어 지거나 가까운 장래에 변경되지 않는다고 기대하는 것이 합리적일까요? http://opensource.apple.com/source/objc4/objc4-493.9/runtime/objc-references.mm에서 연관 참조를 가져 오거나 설정하기위한 스핀 잠금을 사용합니다. 나는 더 많은 문서를 요구하는 버그 보고서를 제출할 것이다. –
(릴리스 된) API 또는 런타임에서 스레드 안전성으로 문서화 된 모든 구현은 스레드 안전성을 유지한다고 가정하는 것이 합리적 일 수 있습니다. 물론 가능할 수도 있지만 향후 버전의 릴리스 노트를 읽는 것이 좋습니다. – matthias
예 - 현재 의도적으로 스레드 안전성이있는 항목은 이후에 안전하지 않은 스레드로 회귀 할 가능성은 희박합니다. 이는 역방향 일 것이므로 이진 호환성 문제가 발생할 수 있기 때문입니다. 분명히 적절한 문서화가 계약을 훨씬 더 강력하게 만듭니다. – bbum