Disk ARchive  2.7.15
Full featured and portable backup and archiving tool
Public Member Functions | Static Public Member Functions | List of all members
libdar::thread_cancellation Class Reference

class to be used as parent to provide checkpoints to inherited classes More...

#include <thread_cancellation.hpp>

+ Inheritance diagram for libdar::thread_cancellation:
+ Collaboration diagram for libdar::thread_cancellation:

Public Member Functions

 thread_cancellation ()
 the constructor
 
 thread_cancellation (const thread_cancellation &ref)=default
 copy constructor
 
 thread_cancellation (thread_cancellation &&ref) noexcept=default
 move constructor
 
thread_cancellationoperator= (const thread_cancellation &ref)=default
 assignment operator
 
thread_cancellationoperator= (thread_cancellation &&ref) noexcept=default
 move operator
 
virtual ~thread_cancellation () noexcept(false)
 the destructor
 
void check_self_cancellation () const
 Checkpoint test : whether the current libdar call must abort or not. More...
 
void block_delayed_cancellation (bool mode)
 

Static Public Member Functions

static U_I count ()
 method for debugging/control purposes
 

Detailed Description

class to be used as parent to provide checkpoints to inherited classes

the class provides a checkpoints to inherited classes and a mechanism that let any libdar external code to ask the termination of a libdar call executing in a given thread. This does not imply the termination of the thread itself but it implies the return of the thread execution to the code that called libdar

Definition at line 68 of file thread_cancellation.hpp.

Member Function Documentation

◆ block_delayed_cancellation()

void libdar::thread_cancellation::block_delayed_cancellation ( bool  mode)

by default delayed (non immediate) cancellation generate a specific exception, it is possible for delayed cancellation only, do block such exceptions for a certain time

Parameters
[in]modecan be set to true to block delayed cancellations
Note
when unblocking delayed cancellations, if a delayed cancellation has been requested during the ignore time, it will be thrown by this call

◆ check_self_cancellation()

void libdar::thread_cancellation::check_self_cancellation ( ) const

Checkpoint test : whether the current libdar call must abort or not.

Exceptions
Euser_abortis thrown if the thread the checkpoint is running from is marked as to be canceled.

Referenced by libdar::null_file::inherited_read(), and libdar::null_file::inherited_write().


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