Package org.python.core.finalization

# Class FinalizeTrigger

java.lang.Object
org.python.core.finalization.FinalizeTrigger

public class FinalizeTrigger extends Object
To use finalizers on `PyObject`s, read the documentation of `FinalizablePyObject`.

## Field Summary

Fields
Modifier and Type
Field
Description
`static FinalizeTriggerFactory`
`factory`
This factory hook is reserved for use by JyNI.
`static final byte`
`FINALIZED_FLAG`
Indicates that this trigger was already finalized.
`byte`
`flags`
`static final byte`
`NOT_FINALIZABLE_FLAG`
Indicates that the underlying PyObject was never intended to be finalized.
`static final byte`
`NOTIFY_GC_FLAG`
This flag tells the finalize trigger to call `gc.notifyFinalize(PyObject)` after it called the finalizer.
`static final byte`
`ONLY_BUILTIN_FLAG`
Indicates that only `FinalizableBuiltin` shall be called.

## Method Summary

Modifier and Type
Method
Description
`static void`
`appendFinalizeTriggerForBuiltin(PyObject obj)`
`void`
`clear()`
`static void`
`ensureFinalizer(PyObject resurrect)`
Recreates the `FinalizeTrigger` of the given object.
`static boolean`
`hasActiveTrigger(PyObject obj)`
`boolean`
`isActive()`
`static boolean`
`isFinalizable(PyObject obj)`
`boolean`
`isFinalized()`
`static FinalizeTrigger`
`makeTrigger(PyObject toFinalize)`
`void`
`performFinalization()`
`static void`
`runFinalizer(PyObject toFinalize)`
`static void`
`runFinalizer(PyObject toFinalize, boolean runBuiltinOnly)`
`void`
`trigger(PyObject toFinalize)`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### NOTIFY_GC_FLAG

public static final byte NOTIFY_GC_FLAG
This flag tells the finalize trigger to call `gc.notifyFinalize(PyObject)` after it called the finalizer.

See Also:
  - Constant Field Values

### NOT_FINALIZABLE_FLAG

public static final byte NOT_FINALIZABLE_FLAG
Indicates that the underlying PyObject was never intended to be finalized. It is actually not finalizable and the trigger only exists to notify `gc` that the underlying object was finalized. This is needed for some advanced gc-functionality.

See Also:
  - Constant Field Values

### ONLY_BUILTIN_FLAG

public static final byte ONLY_BUILTIN_FLAG
Indicates that only `FinalizableBuiltin` shall be called.

See Also:
  - Constant Field Values

### FINALIZED_FLAG

public static final byte FINALIZED_FLAG
Indicates that this trigger was already finalized.

See Also:
  - Constant Field Values

### factory

public static FinalizeTriggerFactory factory
This factory hook is reserved for use by JyNI. It allows to replace the default `FinalizeTrigger`. JyNI needs it to support garbage collection.

### flags

public byte flags

## Method Details

### makeTrigger

public static FinalizeTrigger makeTrigger(PyObject toFinalize)

### hasActiveTrigger

public static boolean hasActiveTrigger(PyObject obj)

### isFinalizable

public static boolean isFinalizable(PyObject obj)

### ensureFinalizer

public static void ensureFinalizer(PyObject resurrect)
Recreates the `FinalizeTrigger` of the given object. This makes sure that once the resurrected object is gc'ed again, its `__del__`-method will be called again.

### runFinalizer

public static void runFinalizer(PyObject toFinalize)

### runFinalizer

public static void runFinalizer(PyObject toFinalize, boolean runBuiltinOnly)

### appendFinalizeTriggerForBuiltin

public static void appendFinalizeTriggerForBuiltin(PyObject obj)

### clear

public void clear()

### trigger

public void trigger(PyObject toFinalize)

### isActive

public boolean isActive()

### performFinalization

public void performFinalization()

### isFinalized

public boolean isFinalized()