I did not test the code. But if you cannot implicitly capture a mutating
self, you should do it explicitly, right?
let blockSize = min(512, count)
let blockCount = (count+blockSize-1)/blockSize
device.sync { *[self] () -> () in* // Launch CUDA kernel
try! fill<<<(blockSize, blockCount)>>>[
.pointer(to: &self), .value(value), .value(Int64(count))
]
}
Hope above code works.
Zhaoxin
On Fri, Dec 16, 2016 at 3:46 PM, Richard Wei via swift-users <
[email protected]> wrote:
> Hi,
>
> Swift 3.0.2 seems to have broken my code due to mutating self capture. But
> I have to pass inout self to the closure. Any workaround?
>
> let blockSize = min(512, count)
> let blockCount = (count+blockSize-1)/blockSize
> device.sync { // Launch CUDA kernel
> try! fill<<<(blockSize, blockCount)>>>[
> .pointer(to: &self), .value(value), .value(Int64(count))
> ]
> }
>
>
> -Richard
>
> _______________________________________________
> swift-users mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-users
>
>
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users