MutexDirect

from panda3d.core import MutexDirect
class MutexDirect

Bases: DTOOL_SUPER_BASE

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

Inheritance diagram

Inheritance diagram of MutexDirect

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

C++ Interface: acquire(MutexDirect self)

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

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

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

  • Also see MutexHolder.

*/

clearName()

C++ Interface: clear_name(const MutexDirect self)

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

*/

clear_name()

C++ Interface: clear_name(const MutexDirect self)

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

*/

debugIsLocked()

C++ Interface: debug_is_locked(MutexDirect self)

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

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

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

  • reliable way to determine this otherwise.

*/

debug_is_locked()

C++ Interface: debug_is_locked(MutexDirect self)

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

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

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

  • reliable way to determine this otherwise.

*/

getName()

C++ Interface: get_name(MutexDirect self)

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

*/

get_name()

C++ Interface: get_name(MutexDirect self)

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

*/

hasName()

C++ Interface: has_name(MutexDirect self)

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

*/

has_name()

C++ Interface: has_name(MutexDirect self)

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

*/

output()

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

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

  • MutexDirect.

*/

release()

C++ Interface: release(MutexDirect self)

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

  • already locked.

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

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

*/

setName()

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

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

*/

set_name()

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

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

*/

tryAcquire()

C++ Interface: try_acquire(MutexDirect self)

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

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

*/