Geogram  Version 1.9.0
A programming library of geometric algorithms
process.h File Reference

Function and classes for process manipulation. More...

#include <geogram/basic/common.h>
#include <geogram/basic/thread_sync.h>
#include <geogram/basic/counted.h>
#include <geogram/basic/smart_pointer.h>
#include <functional>

Go to the source code of this file.

Classes

class  GEO::Thread
 Platform-independent base class for running threads. More...
 
class  GEO::TypedThreadGroup< THREAD >
 Typed collection of Threads. More...
 
class  GEO::ThreadManager
 Platform-independent base class for running concurrent threads. More...
 
class  GEO::MonoThreadingThreadManager
 Single thread ThreadManager. More...
 

Namespaces

 GEO
 Global Vorpaline namespace.
 
 GEO::Process
 Abstraction layer for process management and multi-threading.
 

Typedefs

typedef SmartPointer< Thread > GEO::Thread_var
 
typedef std::vector< Thread_var > GEO::ThreadGroup
 Collection of Threads. More...
 
typedef SmartPointer< ThreadManager > GEO::ThreadManager_var
 

Functions

void GEO::Process::initialize (int flags)
 Initializes GeogramLib. More...
 
void GEO::Process::terminate ()
 Terminates GeogramLib. More...
 
void GEO::Process::sleep (index_t microseconds)
 Sleeps for a period of time. More...
 
void GEO::Process::show_stats ()
 Displays statistics about the current process. More...
 
void GEO::Process::brute_force_kill ()
 Terminates the current process.
 
index_t GEO::Process::maximum_concurrent_threads ()
 Returns the maximum number of threads that can be running simultaneously. More...
 
void GEO::Process::run_threads (ThreadGroup &threads)
 Runs a set of threads simultaneously. More...
 
index_t GEO::Process::number_of_cores ()
 Gets the number of available cores. More...
 
void GEO::Process::set_thread_manager (ThreadManager *thread_manager)
 Sets the thread manager (internal use). More...
 
bool GEO::Process::is_running_threads ()
 Checks whether threads are running. More...
 
void GEO::Process::enable_FPE (bool flag)
 Enables/disables floating point exceptions. More...
 
bool GEO::Process::FPE_enabled ()
 Gets the status of floating point exceptions. More...
 
void GEO::Process::enable_multithreading (bool flag)
 Enables/disables multi-threaded computations Multi-threading can also be configured by setting the value of the property "sys:multithread" with Environment::set_value(). More...
 
bool GEO::Process::multithreading_enabled ()
 Gets the status of multi-threading. More...
 
void GEO::Process::set_max_threads (index_t num_threads)
 Limits the number of concurrent threads to use. More...
 
index_t GEO::Process::max_threads ()
 Gets the number of allowed concurrent threads. More...
 
void GEO::Process::enable_cancel (bool flag)
 Enables interruption of cancelable tasks. More...
 
bool GEO::Process::cancel_enabled ()
 Gets the status of the cancel mode. More...
 
size_t GEO::Process::used_memory ()
 Gets the currently used memory. More...
 
size_t GEO::Process::max_used_memory ()
 Gets the maximum used memory. More...
 
std::string GEO::Process::executable_filename ()
 Gets the full path to the currently running program.
 
void GEO::Process::print_stack_trace ()
 Prints a stack trace to the standard error.
 
void GEO::parallel_for (index_t from, index_t to, std::function< void(index_t)> func, index_t threads_per_core=1, bool interleaved=false)
 Executes a loop with concurrent threads. More...
 
void GEO::parallel_for_slice (index_t from, index_t to, std::function< void(index_t, index_t)> func, index_t threads_per_core=1)
 Executes a loop with concurrent threads. More...
 
void GEO::parallel (std::function< void()> f1, std::function< void()> f2)
 Calls functions in parallel. More...
 
void GEO::parallel (std::function< void()> f1, std::function< void()> f2, std::function< void()> f3, std::function< void()> f4)
 Calls functions in parallel. More...
 
void GEO::parallel (std::function< void()> f1, std::function< void()> f2, std::function< void()> f3, std::function< void()> f4, std::function< void()> f5, std::function< void()> f6, std::function< void()> f7, std::function< void()> f8)
 Calls functions in parallel. More...
 

Detailed Description

Function and classes for process manipulation.

Definition in file process.h.