ReMutexDirect

from panda3d.core import ReMutexDirect
class ReMutexDirect

Bases: DTOOL_SUPER_BASE

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

Inheritance diagram

Inheritance diagram of ReMutexDirect

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

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

/**
  • Grabs the reMutex 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 reMutex is held; you should then call unlock().

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

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

  • Also see ReMutexHolder.

*/

/**
  • 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 ReMutexDirect self)

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

*/

clear_name()

C++ Interface: clear_name(const ReMutexDirect self)

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

*/

debugIsLocked()

C++ Interface: debug_is_locked(ReMutexDirect self)

/**
  • Returns true if the current thread has locked the ReMutex, false otherwise.

  • This method is only intended for use in debugging, hence the method name;

  • in the ReMutexDirect case, it always returns true, since there’s not a

  • reliable way to determine this otherwise.

*/

debug_is_locked()

C++ Interface: debug_is_locked(ReMutexDirect self)

/**
  • Returns true if the current thread has locked the ReMutex, false otherwise.

  • This method is only intended for use in debugging, hence the method name;

  • in the ReMutexDirect case, it always returns true, since there’s not a

  • reliable way to determine this otherwise.

*/

elevateLock()

C++ Interface: elevate_lock(ReMutexDirect 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(ReMutexDirect 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(ReMutexDirect self)

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

*/

get_name()

C++ Interface: get_name(ReMutexDirect self)

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

*/

hasName()

C++ Interface: has_name(ReMutexDirect self)

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

*/

has_name()

C++ Interface: has_name(ReMutexDirect self)

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

*/

output()

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

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

  • ReMutexDirect.

*/

release()

C++ Interface: release(ReMutexDirect self)

/**
  • Releases the reMutex. It is an error to call this if the reMutex was not

  • already locked.

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

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

*/

setName()

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

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

*/

set_name()

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

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

*/

tryAcquire()

C++ Interface: try_acquire(ReMutexDirect self) try_acquire(ReMutexDirect self, Thread current_thread)

/**
  • Returns immediately, with a true value indicating the mutex has been

  • acquired, and false indicating it has not.

  • @deprecated Python users should use acquire(False), C++ users try_lock()

*/

/**
  • Returns immediately, with a true value indicating the mutex has been

  • acquired, and false indicating it has not.

  • @deprecated Python users should use acquire(False), C++ users try_lock()

*/

try_acquire()

C++ Interface: try_acquire(ReMutexDirect self) try_acquire(ReMutexDirect self, Thread current_thread)

/**
  • Returns immediately, with a true value indicating the mutex has been

  • acquired, and false indicating it has not.

  • @deprecated Python users should use acquire(False), C++ users try_lock()

*/

/**
  • Returns immediately, with a true value indicating the mutex has been

  • acquired, and false indicating it has not.

  • @deprecated Python users should use acquire(False), C++ users try_lock()

*/