Comments (11)
from overdrive.
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.
Hey, could you get the time to look at this?
from overdrive.
from overdrive.
@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.
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.
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.
Hey, any update?
from overdrive.
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.
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.
Alright. Thanks a lot! Seems to work, considering the tests pass.
from overdrive.
Related Issues (10)
- SynchronousTask not finishing if result property is not set HOT 1
- Tasks added to suspended TaskQueue won't run HOT 1
- Support for Many to One Dependencies HOT 7
- didFinish method never called when task is finished HOT 2
- Release with the memory leak fixed? HOT 7
- maxConcurrentCount=1 only executes the first task in the queue HOT 2
- `maxConcurrentTaskCount` is inaccessible for clients HOT 1
- Retry triggered on success? HOT 2
- How to cancel the tasks are running? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from overdrive.