Panda3D
|
The base class for both IStreamWrapper and OStreamWrapper, this provides the common locking interface. More...
#include "streamWrapper.h"
Public Member Functions | |
void | acquire () |
Acquires the internal lock. | |
void | release () |
Releases the internal lock. |
The base class for both IStreamWrapper and OStreamWrapper, this provides the common locking interface.
Definition at line 27 of file streamWrapper.h.
void StreamWrapperBase::acquire | ( | ) | [inline] |
Acquires the internal lock.
User code should call this to take temporary possession of the stream and perform direct I/O operations on it, for instance to make several sequential atomic reads. You may not call any of the StreamWrapper methods while the lock is held, other than release().
Use with extreme caution! This is a very low-level, non-recursive lock. You must call acquire() only once, and you must later call release() exactly once. Failing to do so may result in a hard deadlock with no available debugging features.
Definition at line 47 of file streamWrapper.I.
Referenced by Multifile::flush(), IStreamWrapper::get(), OStreamWrapper::put(), IStreamWrapper::read(), OStreamWrapper::seek_eof_write(), IStreamWrapper::seek_gpos_eof(), OStreamWrapper::seek_ppos_eof(), IStreamWrapper::seek_read(), OStreamWrapper::seek_write(), and OStreamWrapper::write().
void StreamWrapperBase::release | ( | ) | [inline] |
Releases the internal lock.
Must be called exactly once following a call to acquire(). See the cautions with acquire().
Definition at line 65 of file streamWrapper.I.
Referenced by Multifile::flush(), IStreamWrapper::get(), OStreamWrapper::put(), IStreamWrapper::read(), OStreamWrapper::seek_eof_write(), IStreamWrapper::seek_gpos_eof(), OStreamWrapper::seek_ppos_eof(), IStreamWrapper::seek_read(), OStreamWrapper::seek_write(), and OStreamWrapper::write().