Zhao, it’s not a class. Rien, unsafe pointers is the last thing I would ever want to introduce in my library…
Capturing self was clean, working perfectly, until Swift 3.0.2. -Richard > On Dec 16, 2016, at 02:49, Zhao Xin <owe...@gmail.com> wrote: > > What is the type of self? If it is a class, try [unowned self]. > > Zhaoxin > > > > > > > On Fri, Dec 16, 2016 at 4:33 PM, Rien via swift-users <swift-users@swift.org > <mailto:swift-users@swift.org>> wrote: > How about using: > > UnsafeMutablePointer<TypeOfSelf> > > ? > > Regards, > Rien > > Site: http://balancingrock.nl <http://balancingrock.nl/> > Blog: http://swiftrien.blogspot.com <http://swiftrien.blogspot.com/> > Github: http://github.com/Swiftrien <http://github.com/Swiftrien> > Project: http://swiftfire.nl <http://swiftfire.nl/> > > > > > > On 16 Dec 2016, at 09:10, Richard Wei via swift-users > > <swift-users@swift.org <mailto:swift-users@swift.org>> wrote: > > > > Capturing makes it immutable, which unfortunately can't solve this problem. > > > > -Richard > > > >> On Dec 16, 2016, at 02:05, Zhao Xin <owe...@gmail.com > >> <mailto:owe...@gmail.com>> wrote: > >> > >> 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 > >> <swift-users@swift.org <mailto:swift-users@swift.org>> 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)) > >> ] > >> } > >> > >> <PastedGraphic-1.png> > >> > >> -Richard > >> > >> _______________________________________________ > >> swift-users mailing list > >> swift-users@swift.org <mailto:swift-users@swift.org> > >> https://lists.swift.org/mailman/listinfo/swift-users > >> <https://lists.swift.org/mailman/listinfo/swift-users> > >> > >> > > > > _______________________________________________ > > swift-users mailing list > > swift-users@swift.org <mailto:swift-users@swift.org> > > https://lists.swift.org/mailman/listinfo/swift-users > > <https://lists.swift.org/mailman/listinfo/swift-users> > > _______________________________________________ > swift-users mailing list > swift-users@swift.org <mailto:swift-users@swift.org> > https://lists.swift.org/mailman/listinfo/swift-users > <https://lists.swift.org/mailman/listinfo/swift-users> >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users