35 #ifndef THREAD_CANCELLATION_HPP
36 #define THREAD_CANCELLATION_HPP
38 #include "../my_config.h"
96 static void cancel(pthread_t tid,
bool x_immediate, U_64 x_flag);
102 static bool cancel_status(pthread_t tid);
108 static bool clear_pending_request(pthread_t tid);
118 static void associate_tid_to_tid(pthread_t src, pthread_t dst);
124 static void remove_association_for_tid(pthread_t src);
129 static void remove_association_targeted_at(pthread_t dst);
132 static void dead_thread(pthread_t tid);
165 static pthread_mutex_t access;
166 static std::list<thread_cancellation *> info;
167 static std::list<fields> preborn;
168 static std::multimap<pthread_t, pthread_t> thread_asso;
171 static void set_cancellation_in_info_for(pthread_t tid,
178 static void add_to_preborn(pthread_t tid,
bool x_immediate, U_64 x_flag);
179 static void remove_from_preborn(pthread_t tid,
bool & found,
bool & prev);
180 static void find_asso_tid_with(pthread_t tid,
181 std::multimap<pthread_t, pthread_t>::iterator & begin,
182 std::multimap<pthread_t, pthread_t>::iterator & end);
are defined here basic integer types that tend to be portable
void block_delayed_cancellation(bool mode)
static U_I count()
method for debugging/control purposes
void check_self_cancellation() const
Checkpoint test : whether the current libdar call must abort or not.
virtual ~thread_cancellation()
the destructor
class to be used as parent to provide checkpoints to inherited classes
thread_cancellation()
the constructor
exception used to signal a bug. A bug is triggered when reaching some code that should never be reach...
libdar namespace encapsulate all libdar symbols