> On Jan 8, 2018, at 11:47, ⁨‫Fadi Botros‬ ‫⁩ <⁨botros_f...@yahoo.com⁩> wrote:
> 
> 1st: How to invoke the thread sanitizer?

Check out this article on developer.apple.com: 
https://developer.apple.com/documentation/code_diagnostics/thread_sanitizer/enabling_the_thread_sanitizer

> 2nd: I think making something like ConcurrentModificationException of Java 
> should be a little better experience (if it will not make, or make a small 
> performance penalty, also if it makes performance penalty, it would be 
> activated only when you make a debug version or non-optimized version)

I don't exactly disagree, but my understanding is that the work to do such a 
thing is nearly equivalent to having thread sanitizer on all the time. But 
maybe there's a simpler model that we could still turn on in debug builds. Can 
you file a bug report requesting this now that bugs.swift.org is back up?

Thanks!
Jordan



> 
> 
> من: Jordan Rose <jordan_r...@apple.com>
> إلى: ‫Fadi Botros‬ ‫ <botros_f...@yahoo.com> 
> نسخة كربونية: "swift-users@swift.org" <swift-users@swift.org>
> تاريخ الإرسال: الإثنين 8 يناير، 2018‏ 9:14 م
> الموضوع: Re: [swift-users] Swift 4.0 bug in concurrent array access
> 
> That sounds expected to me. While Array values are thread-safe, writing to 
> the global variable 'array' from two different threads would be a race. You 
> can see this properly diagnosed if you enable Thread Sanitizer.
> 
> Jordan
> 
> P.S. bugs.swift.org <http://bugs.swift.org/> should be back up now, if you 
> find any other issues.
> 
> 
>> On Jan 8, 2018, at 11:02, ⁨‫Fadi Botros‬ ‫ via swift-users⁩ 
>> <⁨swift-users@swift.org <mailto:swift-users@swift.org>⁩> wrote:
>> 
>> I'm on macOS Sierra 10.12.6, and using Swift 4.0
>> Tried to access the array concurrently to see whether is it synchronized or 
>> no
>> import Foundation let global = DispatchQueue.global() var array: [Int] = [ - 
>> Pastebin.com <https://pastebin.com/PnvyM3Qn>
>> 
>> 
>> import Foundation let global = DispatchQueue.global() var array: [Int...
>>  <https://pastebin.com/PnvyM3Qn>
>> 
>> When tried to run it using the terminal
>> This crash happened
>> 
>> swift(69836,0x700002dc2000) malloc: *** error for object 0x7ffe4be237e0: 
>> pointer - Pastebin.com <https://pastebin.com/vrdKTfrP>
>> 
>> 
>> swift(69836,0x700002dc2000) malloc: *** error for object 0x7ffe4be237e0: 
>> po...
>>  <https://pastebin.com/vrdKTfrP>
>> 
>> Avoided this crash using Serial Dispatch Queue
>> 
>> let otherDispatch = DispatchQueue(label: "another.dispatch.com 
>> <http://another.dispatch.com/>",
>>                                   qos: .default)
>> func appending(_ i: Int) {
>>   otherDispatch.sync { array.append(i) }
>> }
>> 
>> 
>> 
>> Also tried to file this issue on bugs.swift.org <http://bugs.swift.org/>, 
>> and it appears your site is down (under maintainence)
>> 
>> Sorry
>> _______________________________________________
>> swift-users mailing list
>> swift-users@swift.org <mailto:swift-users@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users
> 
> 
> 

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to