libdar::thread_cancellation Class Reference
Private

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

`#include <thread_cancellation.hpp>`

Inherited by libdar::fichier_global, libdar::null_file, and libdar::tuyau.

## 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_cancellation & | operator= (const thread_cancellation &ref)=default
| assignment operator
thread_cancellation & | operator= (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 More...

## 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] | mode | can 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_abort | is 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().

## count()

static U_I libdar::thread_cancellation::count | ( |  | ) |

inline static

method for debugging/control purposes

Definition at line 152 of file thread_cancellation.hpp.

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

- thread_cancellation.hpp