Qore Programming Language  0.9.16
AbstractThreadResource Class Referenceabstract

base class for saving data using Qore's thread resource management system More...

#include <AbstractThreadResource.h>

Inheritance diagram for AbstractThreadResource:
Collaboration diagram for AbstractThreadResource:

Public Member Methods

DLLEXPORT AbstractThreadResource ()
 the constructor is currently empty
 
virtual DLLEXPORT ~AbstractThreadResource ()
 virtual destructor
 
virtual void cleanup (ExceptionSink *xsink)=0
 this function is called when a thread terminates and a thread resource is still allocated to the thread
 
virtual DLLLOCAL QoreProgramgetProgram ()
 this function is called when clearing thread resources for a particular Program when being destroyed
 
- Public Member Methods inherited from AbstractPrivateData
virtual DLLLOCAL void deref ()
 decrements the reference count of the object without the possibility of throwing a Qore-language exception
 
virtual DLLLOCAL void deref (ExceptionSink *xsink)
 decrements the reference count of the object More...
 
DLLLOCAL void ref ()
 increments the reference count of the object More...
 
- Public Member Methods inherited from QoreReferenceCounter
DLLEXPORT QoreReferenceCounter ()
 creates the reference counter object
 
DLLEXPORT QoreReferenceCounter (const QoreReferenceCounter &old)
 creates a new object with a reference count of 1 More...
 
DLLEXPORT ~QoreReferenceCounter ()
 destroys the reference counter object
 
DLLEXPORT bool is_unique () const
 returns true if the reference count is 1 More...
 
DLLEXPORT int reference_count () const
 gets the reference count More...
 
DLLEXPORT bool ROdereference () const
 atomically decrements the reference count More...
 
DLLEXPORT void ROreference () const
 atomically increments the reference count
 

Additional Inherited Members

- Private Member Methods inherited from AbstractPrivateData
virtual DLLLOCAL ~AbstractPrivateData ()
 as these objects are reference counted, the destructor should be called only when the reference count = 0 and not manually
 

Detailed Description

base class for saving data using Qore's thread resource management system

Thread resources are resources that are tied to a particular thread. Qore provides the ability to call the object's "cleanup()" function if the resource is still allocated to the thread when the thread terminates. For example, the Datasource transaction lock is implemented as a thread resource. If the used does not commit or rollback an open transaction before the thread terminates, ManagedDatasource::cleanup() is run, which will throw an exception, rollback the transaction, and release the transaction lock. When a thread commits or rolls back a transaction, the thread resource is removed. Use the set_thread_resource() to set and remove_thread_resource() to remove thread resources.

See also
set_thread_resource()
remove_thread_resource()

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