ConcurrentWriterCpgPass

abstract
class ConcurrentWriterCpgPass[T <: AnyRef](cpg: Cpg, outName: String, keyPool: Option[KeyPool]) extends NewStyleCpgPassBase[T]
Companion
object
class Object
trait Matchable
class Any

Type members

Inherited types

type DiffGraphBuilder = DiffGraphBuilder
Inherited from
NewStyleCpgPassBase

Value members

Concrete methods

override
def createApplySerializeAndStore(serializedCpg: SerializedCpg, inverse: Boolean, prefix: String): Unit

WARNING: runOnPart is executed in parallel to committing of graph modifications. The upshot is that it is unsafe to read ANY data from cpg, on pain of bad race conditions

WARNING: runOnPart is executed in parallel to committing of graph modifications. The upshot is that it is unsafe to read ANY data from cpg, on pain of bad race conditions

Only use ConcurrentWriterCpgPass if you are very sure that you avoid races.

E.g. adding a CFG edge to node X races with reading an AST edge of node X.

Definition Classes

Inherited methods

override
def createAndApply(): Unit
Definition Classes
Inherited from
NewStyleCpgPassBase
def finish(): Unit
Inherited from
NewStyleCpgPassBase
def generateParts(): Array[_ <: AnyRef]
Inherited from
NewStyleCpgPassBase
def init(): Unit
Inherited from
NewStyleCpgPassBase
def name: String

Name of the pass. By default it is inferred from the name of the class, override if needed.

Name of the pass. By default it is inferred from the name of the class, override if needed.

Inherited from
CpgPassBase
def runOnPart(builder: DiffGraphBuilder, part: T): Unit
Inherited from
NewStyleCpgPassBase
override
def runWithBuilder(externalBuilder: DiffGraphBuilder): Int
Definition Classes
Inherited from
NewStyleCpgPassBase
def runWithBuilderLogged(builder: DiffGraphBuilder): Int

Wraps runWithBuilder with logging, and swallows raised exceptions. Use with caution -- API is unstable. A return value of -1 indicates failure, otherwise the return value of runWithBuilder is passed through.

Wraps runWithBuilder with logging, and swallows raised exceptions. Use with caution -- API is unstable. A return value of -1 indicates failure, otherwise the return value of runWithBuilder is passed through.

Inherited from
CpgPassBase

Concrete fields

@volatile
var nDiffT: Int