LuciadCPillar 2023.1.04
luciad::ICancellableTask Class Referenceabstract

A task that can be canceled. More...

#include <luciad/concurrent/CancellationToken.h>

Public Member Functions

virtual ~ICancellableTask ()=default
 
virtual void cancel ()=0
 Signals that the task should be canceled. More...
 
virtual void run ()=0
 Executes the cancellable task and waits for it to finish. More...
 

Detailed Description

A task that can be canceled.

The task is launched by calling the run() method. While the task is executing, if another thread calls the cancel() method of that task, then it gets the opportunity to signal that the run() method should stop executing and return early. This can be achieved either by e.g. setting an atomic flag that the run method will periodically check, or by calling a specific abort method on an external API (e.g. a Http request class).

Since
2022.1

Constructor & Destructor Documentation

◆ ~ICancellableTask()

virtual luciad::ICancellableTask::~ICancellableTask ( )
virtualdefault

Member Function Documentation

◆ cancel()

virtual void luciad::ICancellableTask::cancel ( )
pure virtual

Signals that the task should be canceled.

Can be called from any thread. Calling this method synchronously before calling run() prevents run() from doing any work, while calling it synchronously after run() has no effect.

◆ run()

virtual void luciad::ICancellableTask::run ( )
pure virtual

Executes the cancellable task and waits for it to finish.

This call is synchronous, and thus blocking.