Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug][anchors/AnchorsManager.kt] : #24

Merged
merged 2 commits into from
Oct 8, 2020

Conversation

HongdouHub
Copy link
Contributor

外部调用方式如下:
val manager = getInstance().debuggable { true }.taskFactory { factory }.graphics {xxx}
val lockableAnchor = manager.requestBlockWhenFinish(factory.getTask(TASK_10))
lockableAnchor.setLockListener(object : LockableAnchor.LockListener {})
manager.startUp()

解决外部直接调用 AnchorsManager#requestBlockWhenFinish时,但未执行 graphics.invoke()导致
暂未初始化 taskId 对应的 'TASK'实例,requestBlockWhenFinish方法传入的是空实例(内部没有
依赖与被依赖关系),此时生成的LockableTask内部也为空,将导致锁无法锁住后续任务。

外部调用方式如下:
val manager = getInstance().debuggable { true }.taskFactory { factory }.graphics {xxx}
val lockableAnchor = manager.requestBlockWhenFinish(factory.getTask(TASK_10))
lockableAnchor.setLockListener(object : LockableAnchor.LockListener {})
manager.startUp()

解决外部直接调用 AnchorsManager#requestBlockWhenFinish时,但未执行 graphics.invoke()导致
暂未初始化 taskId 对应的 'TASK'实例,requestBlockWhenFinish方法传入的是空实例(内部没有
依赖与被依赖关系),此时生成的LockableTask内部也为空,将导致锁无法锁住后续任务。
Copy link
Collaborator

@YummyLau YummyLau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

一般kotlin dsl 调用推荐使用 block api。如下:
getInstance().debuggable { true }.taskFactory { factory }.block(xxx){}.graphics {xxx}.startUp().

requestBlockWhenFinish独立调用也按照pr思路优化。
提交的代码 allTask并没有赋值,请重新审核下。

@HongdouHub
Copy link
Contributor Author

AnchorsManagerBuilder.allTask这个属性,在原有代码上已经存在(但一直未被使用),其赋值是在 “String.sons” 和 “String.alsoParents” 这两个扩展函数中。因为已经有了赋值,所以提交的代码上没有做此方面的改动。

@YummyLau YummyLau merged commit 0ad06eb into DSAppTeam:master Oct 8, 2020
@YummyLau
Copy link
Collaborator

YummyLau commented Oct 8, 2020

@HongdouHub 调整之后,所有task的依赖都会被添加 inner_start_up_task。validSon选择保存之后提前初始化即可。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants