Home / Function/ addIndices() — netty Function Reference

addIndices() — netty Function Reference

Architecture documentation for the addIndices() function in ConcurrentSkipListIntObjMultimap.java from the netty codebase.

Function java CommonUtil Concurrent calls 1 called by 1

Entity Profile

Dependency Diagram

graph TD
  4b0df467_4bc8_3d65_e85c_0c0d65eefc3c["addIndices()"]
  d9a8da36_aab9_ab33_dc67_870b34dcd270["ConcurrentSkipListIntObjMultimap"]
  4b0df467_4bc8_3d65_e85c_0c0d65eefc3c -->|defined in| d9a8da36_aab9_ab33_dc67_870b34dcd270
  c3cfe397_12eb_0ed0_7cef_c3f236e1c658["V()"]
  c3cfe397_12eb_0ed0_7cef_c3f236e1c658 -->|calls| 4b0df467_4bc8_3d65_e85c_0c0d65eefc3c
  7e2d9d49_a28d_4cbe_a83c_2187034997b4["cpr()"]
  4b0df467_4bc8_3d65_e85c_0c0d65eefc3c -->|calls| 7e2d9d49_a28d_4cbe_a83c_2187034997b4
  style 4b0df467_4bc8_3d65_e85c_0c0d65eefc3c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

common/src/main/java/io/netty/util/concurrent/ConcurrentSkipListIntObjMultimap.java lines 707–748

    static <V> boolean addIndices(Index<V> q, int skips, Index<V> x, int noKey) {
        Node<V> z; int key;
        if (x != null && (z = x.node) != null && (key = z.key) != noKey &&
            q != null) {                            // hoist checks
            boolean retrying = false;
            for (;;) {                              // find splice point
                Index<V> r, d; int c;
                if ((r = q.right) != null) {
                    Node<V> p; int k;
                    if ((p = r.node) == null || (k = p.key) == noKey ||
                        p.val == null) {
                        RIGHT.compareAndSet(q, r, r.right);
                        c = 0;
                    } else if ((c = cpr(key, k)) > 0) {
                        q = r;
                    } else if (c == 0) {
                        break;                      // stale
                    }
                } else {
                    c = -1;
                }

                if (c < 0) {
                    if ((d = q.down) != null && skips > 0) {
                        --skips;
                        q = d;
                    } else if (d != null && !retrying &&
                             !addIndices(d, 0, x.down, noKey)) {
                        break;
                    } else {
                        x.right = r;
                        if (RIGHT.compareAndSet(q, r, x)) {
                            return true;
                        } else {
                            retrying = true;         // re-find splice point
                        }
                    }
                }
            }
        }
        return false;
    }

Domain

Subdomains

Calls

Called By

Frequently Asked Questions

What does addIndices() do?
addIndices() is a function in the netty codebase, defined in common/src/main/java/io/netty/util/concurrent/ConcurrentSkipListIntObjMultimap.java.
Where is addIndices() defined?
addIndices() is defined in common/src/main/java/io/netty/util/concurrent/ConcurrentSkipListIntObjMultimap.java at line 707.
What does addIndices() call?
addIndices() calls 1 function(s): cpr.
What calls addIndices()?
addIndices() is called by 1 function(s): V.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free