Memory allocation implementation details
D-Bus secret internal implementation details

internals of dbus_malloc() etc. More...

## Data Structures

struct | ShutdownClosure
| This struct represents a function to be called on shutdown. More...

## Typedefs

typedef struct ShutdownClosure | ShutdownClosure
| Represents a function to be called on shutdown.

## Functions

dbus_bool_t | _dbus_register_shutdown_func (DBusShutdownFunction func, void *data)
| Register a cleanup function to be called exactly once the next time dbus_shutdown() is called. More...

## Variables

int | _dbus_current_generation = 1
| _dbus_current_generation is used to track each time that dbus_shutdown() is called, so we can reinit things after it's been called. More...

## Detailed Description

internals of dbus_malloc() etc.

Implementation details related to allocating and releasing blocks of memory.

## Function Documentation

dbus_bool_t _dbus_register_shutdown_func | ( | DBusShutdownFunction | func,
|  | void * | data
| ) |  |

Register a cleanup function to be called exactly once the next time dbus_shutdown() is called.

Parameters

  func | the function
  data | data to pass to the function

Returns
  FALSE on not enough memory

Definition at line 809 of file dbus-memory.c.

References _DBUS_LOCK, _DBUS_UNLOCK, ShutdownClosure::data, dbus_new, FALSE, ShutdownClosure::func, ShutdownClosure::next, NULL, and TRUE.

## Variable Documentation

int _dbus_current_generation = 1

_dbus_current_generation is used to track each time that dbus_shutdown() is called, so we can reinit things after it's been called.

It is simply incremented each time we shut down.

Definition at line 780 of file dbus-memory.c.

Referenced by _dbus_cmutex_free_at_location(), _dbus_cmutex_lock(), _dbus_cmutex_new_at_location(), _dbus_cmutex_unlock(), _dbus_condvar_free(), _dbus_condvar_free_at_location(), _dbus_condvar_new(), _dbus_condvar_new_at_location(), _dbus_condvar_wait(), _dbus_condvar_wait_timeout(), _dbus_condvar_wake_one(), _dbus_connection_close_possibly_shared(), _dbus_connection_new_for_transport(), _dbus_connection_ref_unlocked(), _dbus_get_local_machine_uuid_encoded(), _dbus_rmutex_free_at_location(), _dbus_rmutex_lock(), _dbus_rmutex_new_at_location(), _dbus_rmutex_unlock(), dbus_connection_close(), dbus_connection_ref(), dbus_connection_unref(), dbus_message_ref(), dbus_message_unref(), and dbus_threads_init().