Blender  V3.3
Functions | Variables
bpy_interface_atexit.c File Reference
#include <Python.h>
#include "BLI_utildefines.h"
#include "bpy.h"
#include "bpy_capi_utils.h"
#include "WM_api.h"

Go to the source code of this file.

Functions

static PyObject * bpy_atexit (PyObject *UNUSED(self), PyObject *UNUSED(args), PyObject *UNUSED(kw))
 
static void atexit_func_call (const char *func_name, PyObject *atexit_func_arg)
 
void BPY_atexit_register (void)
 
void BPY_atexit_unregister (void)
 

Variables

static PyMethodDef meth_bpy_atexit = {"bpy_atexit", (PyCFunction)bpy_atexit, METH_NOARGS, NULL}
 
static PyObject * func_bpy_atregister = NULL
 

Detailed Description

This file inserts an exit callback into Python's 'atexit' module. Without this sys.exit() can crash because blender is not properly closing resources.

Definition in file bpy_interface_atexit.c.

Function Documentation

◆ atexit_func_call()

static void atexit_func_call ( const char *  func_name,
PyObject *  atexit_func_arg 
)
static

Definition at line 33 of file bpy_interface_atexit.c.

References NULL, and ret.

Referenced by BPY_atexit_register(), and BPY_atexit_unregister().

◆ bpy_atexit()

static PyObject* bpy_atexit ( PyObject *  UNUSEDself,
PyObject *  UNUSEDargs,
PyObject *  UNUSEDkw 
)
static

Definition at line 20 of file bpy_interface_atexit.c.

References BPY_context_get(), C, and WM_exit_ex().

◆ BPY_atexit_register()

void BPY_atexit_register ( void  )

Definition at line 60 of file bpy_interface_atexit.c.

References atexit_func_call(), BLI_assert, func_bpy_atregister, meth_bpy_atexit, and NULL.

Referenced by BPY_python_start().

◆ BPY_atexit_unregister()

void BPY_atexit_unregister ( void  )

Definition at line 69 of file bpy_interface_atexit.c.

References atexit_func_call(), BLI_assert, func_bpy_atregister, and NULL.

Referenced by BPY_python_end().

Variable Documentation

◆ func_bpy_atregister

PyObject* func_bpy_atregister = NULL
static

Definition at line 31 of file bpy_interface_atexit.c.

Referenced by BPY_atexit_register(), and BPY_atexit_unregister().

◆ meth_bpy_atexit

PyMethodDef meth_bpy_atexit = {"bpy_atexit", (PyCFunction)bpy_atexit, METH_NOARGS, NULL}
static

Definition at line 30 of file bpy_interface_atexit.c.

Referenced by BPY_atexit_register().