Lines Matching refs:dependency
22 dependency can be understood as lock order, where L1 -> L2 suggests that
25 dependency just means the order ever happened. The validator maintains a
137 Multi-lock dependency rules:
151 validator will find such dependency circle in arbitrary complexity,
173 dependency rules are enforced:
375 likely to be linked into the lock-dependency graph. This turns out to
512 Dependency types and strong dependency paths:
519 For each lock dependency::
531 With the above combination for simplification, there are 4 types of dependency edges
535 exclusive writer to recursive reader dependency, "X -(ER)-> Y" means
539 exclusive writer to non-recursive locker dependency, "X -(EN)-> Y" means
543 shared reader to recursive reader dependency, "X -(SR)-> Y" means
547 shared reader to non-recursive locker dependency, "X -(SN)-> Y" means
565 , we have both X -(SN)-> Y and X -(EN)-> Y in the dependency graph.
570 A "path" is a series of conjunct dependency edges in the graph. And we define a
571 "strong" path, which indicates the strong dependency throughout each dependency
576 -(ER)-> dependency, the walk from Y to Z must not be through a -(SN)-> or
577 -(SR)-> dependency.
600 deadlock possibility. As a closed strong path stands for a dependency chain that
601 could cause deadlocks, so we call it "strong", considering there are dependency
639 strong circle in the dependency graph.
645 for L1 and holding Ln, so we will have Ln -> L1 in the dependency graph. Similarly,
646 we have L1 -> L2, L2 -> L3, ..., Ln-1 -> Ln in the dependency graph, which means we
653 For a lock Lx, Px contributes the dependency Lx-1 -> Lx and Px+1 contributes
654 the dependency Lx -> Lx+1, and since Px is waiting for Px+1 to release Lx,