인프런 커뮤니티 질문&답변

미래님의 프로필 이미지
미래

작성한 질문수

앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해

2) 시리얼큐와 Sync

warning 뜸

작성

·

27

0

코드파일의 5번 SerialSyncProject의 WriteSyncronously()를 실행할 경우 SerialSyncProject(9296,0x104550200) malloc: nano zone abandoned due to inability to reserve vm space.

현재 이름(write-safe): 재석 유

==================

WARNING: ThreadSanitizer: data race (pid=9296)

  Write of size 8 at 0x000108f5f7d0 by thread T8:

    #0 SerialSyncProject.Person.changeName(firstName: Swift.String, lastName: Swift.String) -> () <null> (SerialSyncProject.debug.dylib:arm64+0xdc98)

    #1 closure #1 () -> () in SerialSyncProject.WriteSyncPerson.changeName(firstName: Swift.String, lastName: Swift.String) -> () <null> (SerialSyncProject.debug.dylib:arm64+0x105b4)

   ....기타 경고들....

==================

현재 이름(write-safe): 구라 김

현재 이름(write-safe): 나래 박

현재 이름(write-safe): 동엽 신

현재 이름(write-safe): 세형 양

마지막 이름은?(write-safe): 세형 양

이런식으로 경고메세지가 뜨는데 정상인걸까요? - 데이터 레이서 때문에 생기는 현상이어서 그냥 넘겨도 되는건지 궁금합니다!

답변 1

0

앨런(Allen)님의 프로필 이미지
앨런(Allen)
지식공유자

네네 미래 님!

그런 에러 메세지가 뜨는게 정상입니다 !

 

잘못 구현되어 있기 때문에(?) (즉, 쓰레드 세이프하지 않게 구현되어 있기 때문에)
그 것을 아래의 changeNameSafelyPrintRightly() 코드로 고치면 되는 내용이기 때문에, 에러 메세지가 뜰 수 있어요.

 

궁금하신게 있으시면 또 언제든지 질문 주세요 !

 

고맙습니다 :)

미래님의 프로필 이미지
미래

작성한 질문수

질문하기