• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Swift and Threads
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Swift and Threads


  • Subject: Re: Swift and Threads
  • From: "Gerriet M. Denkmann" <email@hidden>
  • Date: Tue, 13 Sep 2016 13:52:23 +0700

> On 12 Sep 2016, at 22:49, Jens Alfke <email@hidden> wrote:
>
>
>> On Sep 12, 2016, at 6:42 AM, Gerriet M. Denkmann <email@hidden> wrote:
>>
>> So: is the code ok and the compiler broken in Debug mode?
>> Or is the code fundamentally wrong and that it works in Release is just a fluke?

I tried a variation of my function. This does not crash (not even in Debug builds), but takes twice the memory and is about four times slower:

func markAndTell_2( talk: Bool, number: Int) -> [Bool]
{
	[...]
	let bitLimit = nbrOfThreads * itemsPerThread
	var bitfield = [Bool](count: bitLimit, repeatedValue: false)

	var outputSlice0: ArraySlice<Bool> = []
	[...]
	var outputSlice7: ArraySlice<Bool> = []

	let queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 );
	dispatch_apply( Int(nbrOfThreads), queue,
		{ ( idx: size_t) -> Void in

			let startIndex = itemsPerThread * Int(idx)
			let endIndex = min( startIndex + itemsPerThread, bitLimit )

			var tempSlice: ArraySlice<Bool> = bitfield[ startIndex ..< endIndex ]

			var currIndex = startIndex
			while( currIndex < endIndex )
			{
				tempSlice[currIndex] = true
				currIndex += step
			}

			switch(idx)
			{
				case 0: outputSlice0 = tempSlice
				[...]
				case 7: outputSlice7 = tempSlice
				default: print("Thread[\(idx)] does not know where to put its slice")
			}
		}
	)

	bitfield = []
	bitfield += outputSlice0
	[...]
	bitfield += outputSlice7

	return bitfield
}

Gerriet.


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: Swift and Threads
      • From: Quincey Morris <email@hidden>
    • Re: Swift and Threads
      • From: "Stephen J. Butler" <email@hidden>
References: 
 >Swift and Threads (From: "Gerriet M. Denkmann" <email@hidden>)
 >Re: Swift and Threads (From: Jens Alfke <email@hidden>)

  • Prev by Date: Re: Swift and Threads
  • Next by Date: Re: Swift and Threads
  • Previous by thread: Re: Swift and Threads
  • Next by thread: Re: Swift and Threads
  • Index(es):
    • Date
    • Thread