feisty meow concerns codebase  2.140
processes Namespace Reference

Classes

class  configured_applications
 Manages the initialization file for a set of registered applications. More...
 
class  ethread
 Provides a platform-independent object for adding threads to a program. More...
 
class  heartbeat
 Monitors a periodic heartbeat to track a resource's health. More...
 
class  char_star_array
 a simple wrapper of an array of char *, used by launch_process::break_line(). More...
 
class  launch_process
 Provides the capability to start processes in a variety of ways to run other applications. More...
 
class  letter
 A virtual base class for pieces of "mail". Used by the mailbox object. More...
 
class  mail_stop
 Base class for routes on which letters are automatically delivered. More...
 
class  mailbox
 Implements a thread safe "mail" delivery system. More...
 
class  OS_event
 Models an OS-level event so we can represent activities occurring there. More...
 
class  post_office
 Manages a collection of mailboxes and implements delivery routes for mail. More...
 
class  process_control
 Provides a bridge to the operating system for information on processes. More...
 
class  process_entry
 Encapsulates information about OS processes. More...
 
class  process_entry_array
 a handy class that implements an array of process entries. More...
 
class  rendezvous
 An inter-process synchronization primitive. More...
 
class  safe_callback
 A reasonably easy way to make callbacks safe from shutdown ordering issues. More...
 
class  callback_data_block
 a simple place-holder that anonymizes the type passed to the callback. More...
 
class  safe_roller
 Implements a thread-safe roller object. More...
 
class  state_machine
 Monitors objects with multiple states and the transitions between states. More...
 
class  transition_map
 The transition_map manages state machines and causes state changes to occur. More...
 
class  thread_cabinet
 Manages a collection of threads. More...
 

Functions

const char * PRODUCT_HEADING ()
 
const char * ASSIGN_TOKEN ()
 
const char * SEPARATOR_TOKEN ()
 
const char * SEPARATOR_TEXT ()
 
const char * PARMS_HEADING ()
 
const char * ONESHOT_HEADING ()
 
mutex__process_synchronizer ()
 
int_set __our_kids ()
 
astring general_lock_name (const astring &root_part)
 
astring unix_rendez_file (const astring &lock_name)
 
void safe_add (int &to_change, int addition)
 thread-safe integer addition. More...
 

Variables

const int MAXIMUM_CREATE_ATTEMPTS = 20
 
const int MINIMUM_SLEEP_PERIOD = 10
 
const int MAXIMUM_SLEEP_PERIOD = 200
 
const int SNOOZE_FOR_RETRY = 100
 
const int MAILBOX_BITS = 9
 
const int CLEANING_INTERVAL = 14 * SECOND_ms
 
const int SNOOZE_TIME_FOR_POSTMAN = 42
 
const int DELIVERIES_ALLOWED = 350
 

Function Documentation

◆ __our_kids()

int_set processes::__our_kids ( )

Definition at line 59 of file launch_process.cpp.

Referenced by processes::launch_process::run().

◆ __process_synchronizer()

mutex& processes::__process_synchronizer ( )

Definition at line 54 of file launch_process.cpp.

Referenced by processes::launch_process::run().

◆ ASSIGN_TOKEN()

◆ general_lock_name()

astring processes::general_lock_name ( const astring root_part)

Definition at line 50 of file rendezvous.cpp.

Referenced by processes::rendezvous::rendezvous().

◆ ONESHOT_HEADING()

const char* processes::ONESHOT_HEADING ( )

◆ PARMS_HEADING()

◆ PRODUCT_HEADING()

const char* processes::PRODUCT_HEADING ( )

◆ safe_add()

void processes::safe_add ( int &  to_change,
int  addition 
)

thread-safe integer addition.

the number passed in "addition" is atomically added to the number referenced in "to_change". this allows thread-safe manipulation of a simple number.

Definition at line 29 of file safe_roller.cpp.

◆ SEPARATOR_TEXT()

const char* processes::SEPARATOR_TEXT ( )

◆ SEPARATOR_TOKEN()

const char* processes::SEPARATOR_TOKEN ( )

◆ unix_rendez_file()

astring processes::unix_rendez_file ( const astring lock_name)

Definition at line 55 of file rendezvous.cpp.

References mkdir, and basis::astring::observe().

Referenced by processes::rendezvous::rendezvous().

Variable Documentation

◆ CLEANING_INTERVAL

const int processes::CLEANING_INTERVAL = 14 * SECOND_ms

Definition at line 45 of file post_office.cpp.

Referenced by processes::post_office::deliver_mail_on_route().

◆ DELIVERIES_ALLOWED

const int processes::DELIVERIES_ALLOWED = 350

Definition at line 53 of file post_office.cpp.

Referenced by processes::post_office::deliver_mail_on_route().

◆ MAILBOX_BITS

const int processes::MAILBOX_BITS = 9

Definition at line 36 of file mailbox.cpp.

◆ MAXIMUM_CREATE_ATTEMPTS

const int processes::MAXIMUM_CREATE_ATTEMPTS = 20

Definition at line 48 of file ethread.cpp.

Referenced by processes::ethread::start().

◆ MAXIMUM_SLEEP_PERIOD

const int processes::MAXIMUM_SLEEP_PERIOD = 200

Definition at line 55 of file ethread.cpp.

◆ MINIMUM_SLEEP_PERIOD

const int processes::MINIMUM_SLEEP_PERIOD = 10

Definition at line 52 of file ethread.cpp.

Referenced by processes::ethread::ethread().

◆ SNOOZE_FOR_RETRY

const int processes::SNOOZE_FOR_RETRY = 100

Definition at line 58 of file ethread.cpp.

Referenced by processes::ethread::start().

◆ SNOOZE_TIME_FOR_POSTMAN

const int processes::SNOOZE_TIME_FOR_POSTMAN = 42

Definition at line 48 of file post_office.cpp.