Code Monkey home page Code Monkey logo

Comments (11)

saidsikira avatar saidsikira commented on July 19, 2024

from overdrive.

biocross avatar biocross commented on July 19, 2024

I have gotten around this temporarily by replacing
assert(internalState.canTransition(to: newState, isCancelled: isCancelled), "Invalid state transformation from \(internalState) to \(newState)") internalState = newState

with

if(internalState.canTransition(to: newState, isCancelled: isCancelled)){ internalState = newState }

in TaskBase.swift (state variable setter)

For the time being, this fixes the crashes, as well passes the tests on the iOS 11 simulator. This is basically preventing invalid state transformations.

from overdrive.

biocross avatar biocross commented on July 19, 2024

Hey, could you get the time to look at this?

from overdrive.

saidsikira avatar saidsikira commented on July 19, 2024

from overdrive.

saidsikira avatar saidsikira commented on July 19, 2024

@biocross you say that you've ran unit tests on Xcode 9 beta, does that mean that you converted project to Swift 4? I'm currently running tests on Xcode 9 and every test is passing. If you're interested in that you can look into swift4 branch of the repo.

However, you have a problem in production with iOS 11. Could you supply me with a piece of code that can showcase problems you're having? Then, I'll be able to investigate more.

from overdrive.

biocross avatar biocross commented on July 19, 2024

I didn't convert the code to Swift 4. Basically, due to evaluateConditions being called twice on tasks, the task is moving to the ready state twice, leading to an assertion failure in TaskBase.swift, and crashing in debug. In release mode, even if the assertion is disabled, invalid state transformation end up crashing my tasks.

from overdrive.

biocross avatar biocross commented on July 19, 2024

Hey one thing, tests pass for me in Xcode 9, if I target my mac. Did you target an iOS 11 simulator to run the tests?

from overdrive.

biocross avatar biocross commented on July 19, 2024

Hey, any update?

from overdrive.

saidsikira avatar saidsikira commented on July 19, 2024

I have confirmed that there is a different behavior between iOS 10 and iOS 11, still trying to figure out why. I should have a fix by the end of the day.

from overdrive.

saidsikira avatar saidsikira commented on July 19, 2024

Looks like the behavior of several KVO methods is slightly changed in iOS 11. For now, you can try out fix in the conditions-fix branch.

It's mostly a hack until I rewrite some of the internal stuff, but it should work.

Let me know if it works for you.

from overdrive.

biocross avatar biocross commented on July 19, 2024

Alright. Thanks a lot! Seems to work, considering the tests pass.

from overdrive.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.