Panda3D
 All Classes Functions Variables Enumerations
Public Types | Static Public Member Functions | List of all members
AtomicAdjustDummyImpl Class Reference

A trivial implementation for atomic adjustments for systems that don't require multiprogramming, and therefore don't require special atomic operations. More...

#include "atomicAdjustDummyImpl.h"

Public Types

typedef long Integer
 
typedef void * Pointer
 

Static Public Member Functions

static void add (Integer &var, Integer delta)
 Atomically computes var += delta. More...
 
static Integer compare_and_exchange (Integer &mem, Integer old_value, Integer new_value)
 Atomic compare and exchange. More...
 
static Pointer compare_and_exchange_ptr (Pointer &mem, Pointer old_value, Pointer new_value)
 Atomic compare and exchange. More...
 
static bool dec (Integer &var)
 Atomically decrements the indicated variable and returns true if the new value is nonzero, false if it is zero. More...
 
static Integer get (const Integer &var)
 Atomically retrieves the snapshot value of the indicated variable. More...
 
static Pointer get_ptr (const Pointer &var)
 Atomically retrieves the snapshot value of the indicated variable. More...
 
static void inc (Integer &var)
 Atomically increments the indicated variable. More...
 
static Integer set (Integer &var, Integer new_value)
 Atomically changes the indicated variable and returns the original value. More...
 
static Pointer set_ptr (Pointer &var, Pointer new_value)
 Atomically changes the indicated variable and returns the original value. More...
 

Detailed Description

A trivial implementation for atomic adjustments for systems that don't require multiprogramming, and therefore don't require special atomic operations.

Definition at line 29 of file atomicAdjustDummyImpl.h.

Member Function Documentation

void AtomicAdjustDummyImpl::add ( AtomicAdjustDummyImpl::Integer &  var,
AtomicAdjustDummyImpl::Integer  delta 
)
inlinestatic

Atomically computes var += delta.

It is legal for delta to be negative.

Definition at line 45 of file atomicAdjustDummyImpl.I.

Referenced by MemoryHook::dec_heap(), and MemoryHook::inc_heap().

AtomicAdjustDummyImpl::Integer AtomicAdjustDummyImpl::compare_and_exchange ( AtomicAdjustDummyImpl::Integer &  mem,
AtomicAdjustDummyImpl::Integer  old_value,
AtomicAdjustDummyImpl::Integer  new_value 
)
inlinestatic

Atomic compare and exchange.

If mem is equal to old_value, store new_value in mem. In either case, return the original value of mem. The caller can test for success by comparing return_value == old_value.

Definition at line 115 of file atomicAdjustDummyImpl.I.

Referenced by DeletedBufferChain::deallocate().

AtomicAdjustDummyImpl::Pointer AtomicAdjustDummyImpl::compare_and_exchange_ptr ( AtomicAdjustDummyImpl::Pointer &  mem,
AtomicAdjustDummyImpl::Pointer  old_value,
AtomicAdjustDummyImpl::Pointer  new_value 
)
inlinestatic

Atomic compare and exchange.

As above, but works on pointers instead of integers.

Definition at line 133 of file atomicAdjustDummyImpl.I.

Referenced by Filename::get_common_appdata_directory(), Filename::get_home_directory(), Filename::get_temp_directory(), and Filename::get_user_appdata_directory().

bool AtomicAdjustDummyImpl::dec ( AtomicAdjustDummyImpl::Integer &  var)
inlinestatic

Atomically decrements the indicated variable and returns true if the new value is nonzero, false if it is zero.

Definition at line 34 of file atomicAdjustDummyImpl.I.

Referenced by CachedTypedWritableReferenceCount::cache_unref(), and ReferenceCount::unref().

AtomicAdjustDummyImpl::Integer AtomicAdjustDummyImpl::get ( const Integer &  var)
inlinestatic

Atomically retrieves the snapshot value of the indicated variable.

This is the only guaranteed safe way to retrieve the value that other threads might be asynchronously setting, incrementing, or decrementing (via other AtomicAjust methods).

Definition at line 72 of file atomicAdjustDummyImpl.I.

Referenced by CachedTypedWritableReferenceCount::get_cache_ref_count(), NodeReferenceCount::get_node_ref_count(), NodeCachedReferenceCount::get_node_ref_count(), ReferenceCount::get_ref_count(), UpdateSeq::is_fresh(), UpdateSeq::is_initial(), UpdateSeq::is_old(), UpdateSeq::is_special(), and DeletedBufferChain::validate().

AtomicAdjustDummyImpl::Pointer AtomicAdjustDummyImpl::get_ptr ( const Pointer &  var)
inlinestatic

Atomically retrieves the snapshot value of the indicated variable.

This is the only guaranteed safe way to retrieve the value that other threads might be asynchronously setting, incrementing, or decrementing (via other AtomicAjust methods).

Definition at line 100 of file atomicAdjustDummyImpl.I.

Referenced by Filename::get_common_appdata_directory(), Filename::get_home_directory(), Filename::get_temp_directory(), Filename::get_user_appdata_directory(), ReferenceCount::get_weak_list(), ThreadSafeConstPointerTo< T >::operator const T *(), ThreadSafePointerTo< T >::operator T *(), ThreadSafePointerTo< T >::p(), and ThreadSafeConstPointerTo< T >::p().

void AtomicAdjustDummyImpl::inc ( AtomicAdjustDummyImpl::Integer &  var)
inlinestatic
AtomicAdjustDummyImpl::Integer AtomicAdjustDummyImpl::set ( AtomicAdjustDummyImpl::Integer &  var,
AtomicAdjustDummyImpl::Integer  new_value 
)
inlinestatic

Atomically changes the indicated variable and returns the original value.

Definition at line 56 of file atomicAdjustDummyImpl.I.

Referenced by UpdateSeq::clear().

AtomicAdjustDummyImpl::Pointer AtomicAdjustDummyImpl::set_ptr ( AtomicAdjustDummyImpl::Pointer &  var,
AtomicAdjustDummyImpl::Pointer  new_value 
)
inlinestatic

Atomically changes the indicated variable and returns the original value.

Definition at line 83 of file atomicAdjustDummyImpl.I.


The documentation for this class was generated from the following files: