LightReMutexDirect

from panda3d.core import LightReMutexDirect
class LightReMutexDirect

Bases: DTOOL_SUPER_BASE

This class implements a standard lightReMutex by making direct calls to the underlying implementation layer. It doesn’t perform any debugging operations.

Inheritance diagram

Inheritance diagram of LightReMutexDirect

__init__(*args, **kwargs)
acquire()

C++ Interface: acquire(LightReMutexDirect self) acquire(LightReMutexDirect self, Thread current_thread)

/**
  • Grabs the lightReMutex if it is available. If it is not available, blocks

  • until it becomes available, then grabs it. In either case, the function

  • does not return until the lightReMutex is held; you should then call

  • unlock().

  • This method is considered const so that you can lock and unlock const

  • lightReMutexes, mainly to allow thread-safe access to otherwise const data.

  • Also see LightReMutexHolder.

*/

/**
  • This variant on acquire() accepts the current thread as a parameter, if it

  • is already known, as an optimization.

*/

clearName()

C++ Interface: clear_name(const LightReMutexDirect self)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/

clear_name()

C++ Interface: clear_name(const LightReMutexDirect self)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/

debugIsLocked()

C++ Interface: debug_is_locked(LightReMutexDirect self)

/**
  • Returns true if the current thread has locked the LightReMutex, false

  • otherwise. This method is only intended for use in debugging, hence the

  • method name; in the LightReMutexDirect case, it always returns true, since

  • there’s not a reliable way to determine this otherwise.

*/

debug_is_locked()

C++ Interface: debug_is_locked(LightReMutexDirect self)

/**
  • Returns true if the current thread has locked the LightReMutex, false

  • otherwise. This method is only intended for use in debugging, hence the

  • method name; in the LightReMutexDirect case, it always returns true, since

  • there’s not a reliable way to determine this otherwise.

*/

elevateLock()

C++ Interface: elevate_lock(LightReMutexDirect self)

/**
  • This method increments the lock count, assuming the calling thread already

  • holds the lock. After this call, release() will need to be called one

  • additional time to release the lock.

  • This method really performs the same function as acquire(), but it offers a

  • potential (slight) performance benefit when the calling thread knows that

  • it already holds the lock. It is an error to call this when the calling

  • thread does not hold the lock.

*/

elevate_lock()

C++ Interface: elevate_lock(LightReMutexDirect self)

/**
  • This method increments the lock count, assuming the calling thread already

  • holds the lock. After this call, release() will need to be called one

  • additional time to release the lock.

  • This method really performs the same function as acquire(), but it offers a

  • potential (slight) performance benefit when the calling thread knows that

  • it already holds the lock. It is an error to call this when the calling

  • thread does not hold the lock.

*/

getName()

C++ Interface: get_name(LightReMutexDirect self)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/

get_name()

C++ Interface: get_name(LightReMutexDirect self)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/

hasName()

C++ Interface: has_name(LightReMutexDirect self)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/

has_name()

C++ Interface: has_name(LightReMutexDirect self)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/

output()

C++ Interface: output(LightReMutexDirect self, ostream out)

/**
  • This method is declared virtual in MutexDebug, but non-virtual in

  • LightReMutexDirect.

*/

release()

C++ Interface: release(LightReMutexDirect self)

/**
  • Releases the lightReMutex. It is an error to call this if the lightReMutex

  • was not already locked.

  • This method is considered const so that you can lock and unlock const

  • lightReMutexes, mainly to allow thread-safe access to otherwise const data.

*/

setName()

C++ Interface: set_name(const LightReMutexDirect self, str name)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/

set_name()

C++ Interface: set_name(const LightReMutexDirect self, str name)

/**
  • The mutex name is only defined when compiling in DEBUG_THREADS mode.

*/