강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

miladdakong のプロフィール画像
miladdakong

投稿した質問数

アラン iOS Concurrency(同時実行) - ディスパッチキューとオペレーションキューの理解

2) シリアルキューと同期

warning 뜸

作成

·

144

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): 세형 양

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

iosswift동시성

回答 1

0

allen님의 프로필 이미지
allen
インストラクター

네네 미래 님!

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

 

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

 

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

 

고맙습니다 :)

miladdakong のプロフィール画像
miladdakong

投稿した質問数

質問する