Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFExecutor.cpp
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFExecutor.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFExecutor.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
@@ -0,0 +1,128 @@
+#include <iostream>
+using namespace std;
+#include <chrono>
+using namespace chrono;
+
+#include "caf/actor_ostream.hpp"
+#include "caf/caf_main.hpp"
+#include "caf/event_based_actor.hpp"
+using namespace caf;
+
+int Actors = 40'000, Set = 100, Rounds = 400, Processors = 1, Batch = 1, Factor = 40; // ' default values
+time_point<steady_clock> starttime;
+actor * actors;
+int actorCnt = 0;
+
+class Executor : public event_based_actor {
+	static int ids;										// unique actor id generator
+	actor * gstart;
+	int id, rounds, group, recs = 0, sends = 0;
+
+	behavior make_behavior() override {
+		return {
+			[=]( int & ) -> void {
+				if ( recs == rounds ) {
+					if ( __atomic_add_fetch( &actorCnt, 1, __ATOMIC_SEQ_CST ) == Actors ) {
+						aout(this) << (steady_clock::now() - starttime).count() * Factor / 1'000'000'000.0 << endl;
+					} // if
+					this->quit();
+					return;
+				} // if
+				if ( recs % Batch == 0 ) {
+					for ( int i = 0; i < Batch; i += 1 ) {
+						this->send( gstart[sends % Set], 0 ); // cycle through group
+						sends += 1;
+					}
+				}
+				//aout(this) << id << " " << cnt << endl;
+				recs += 1;
+			}
+		};
+	}
+  public:
+	Executor( caf::actor_config & cfg ) : event_based_actor( cfg ) {
+		id = ids++;										// unique actor id, and start point for cycle
+		gstart = &actors[id / Set * Set];				// remember group-start array-element
+		rounds = Set * Rounds;							// send at least one message to each group member
+		// aout(this) << "id " << id << " rounds " << rounds << " group " << group << endl;
+	}
+}; // Executor
+int Executor::ids = 0;
+
+void caf_main( actor_system & sys ) {
+	for ( int i = 0; i < Actors; i += 1 ) {				// create actors
+		actors[i] = sys.spawn<Executor>();
+	} // for
+	starttime = steady_clock::now();
+	for ( int i = 0; i < Actors; i += 1 ) {				// start actors
+		caf::anon_send( actors[i], 0 );
+	} // for
+} // caf_main
+
+int main( int argc, char * argv[] ) {
+	switch ( argc ) {
+      case 7:
+		if ( strcmp( argv[6], "d" ) != 0 ) {			// default ?
+			Factor = stoi( argv[6] );
+			if ( Factor < 1 ) goto Usage;
+		} // if
+	  case 6:
+		if ( strcmp( argv[5], "d" ) != 0 ) {			// default ?
+			Batch = stoi( argv[5] );
+			if ( Batch < 1 ) goto Usage;
+		} // if
+	  case 5:
+		if ( strcmp( argv[4], "d" ) != 0 ) {			// default ?
+			Processors = stoi( argv[4] );
+			if ( Processors < 1 ) goto Usage;
+		} // if
+	  case 4:
+		if ( strcmp( argv[3], "d" ) != 0 ) {			// default ?
+			Rounds = stoi( argv[3] );
+			if ( Rounds < 1 ) goto Usage;
+		} // if
+	  case 3:
+		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
+			Set = stoi( argv[2] );
+			if ( Set < 1 ) goto Usage;
+		} // if
+	  case 2:
+		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
+			Actors = stoi( argv[1] );
+			if ( Actors < 1 || Actors <= Set || Actors % Set != 0 ) goto Usage;
+		} // if
+	  case 1:											// use defaults
+		break;
+	  default:
+	  Usage:
+		cerr << "Usage: " << argv[0]
+			 << " [ actors (> 0 && > set && actors % set == 0 ) | 'd' (default " << Actors
+			 << ") ] [ set (> 0) | 'd' (default " << Set
+			 << ") ] [ rounds (> 0) | 'd' (default " << Rounds
+			 << ") ] [ processors (> 0) | 'd' (default " << Processors
+			 << ") ] [ batch (> 0) | 'd' (default " << Batch
+			 << ") ]" << endl;
+		exit( EXIT_FAILURE );
+	} // switch
+
+    Rounds = Rounds / Factor;
+
+	//cout << Actors << " " << Set << " " << Rounds << " " << Processors << endl;
+	actors = new actor[Actors];
+
+	caf::core::init_global_meta_objects();
+	caf::exec_main_init_meta_objects<>();
+
+	caf::actor_system_config cfg;
+	cfg.set( "caf.scheduler.max-threads", Processors );
+	caf::actor_system system { cfg };
+
+	return caf::exec_main<>(caf_main, argc, argv);
+} // main
+//CAF_MAIN()
+
+// /usr/bin/time -f "%Uu %Ss %Er %Mkb" a.out
+
+// Local Variables: //
+// compile-command: "g++-10 -Wall -O3 -std=c++17 -ICAF/actor-framework/libcaf_core -ICAF/actor-framework/libcaf_core/caf -ICAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_io CAFExecutor.cpp -lcaf_io -lcaf_core -Wl,-rpath=CAF/actor-framework/build/libcaf_core" //
+// End: //
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFMatrix.cpp
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFMatrix.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFMatrix.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
@@ -0,0 +1,167 @@
+#include <iostream>
+using namespace std;
+#include <chrono>
+using namespace chrono;
+
+#include "caf/actor_ostream.hpp"
+#include "caf/caf_main.hpp"
+#include "caf/event_based_actor.hpp"
+#include "caf/all.hpp"
+using namespace caf;
+
+struct WorkMsg;
+
+CAF_BEGIN_TYPE_ID_BLOCK(custom_types_1, first_custom_type_id)
+CAF_ADD_TYPE_ID(custom_types_1, (WorkMsg))
+CAF_END_TYPE_ID_BLOCK(custom_types_1)
+
+// --(rst-foo-begin)--
+struct WorkMsg {
+	unsigned int b;
+};
+
+template <class Inspector>
+bool inspect(Inspector& f, WorkMsg& x) {
+	return f.object(x).fields(f.field("b", x.b));
+}
+
+unsigned int xr = 3'072, xc = 3'072, yc = 3'072, Processors = 1, MaxProcs = 48; // default values
+
+time_point<steady_clock> starttime;
+actor * actors;
+WorkMsg ** work_msgs;
+unsigned int actorCnt = 0;
+
+int wCount = 0;
+
+int ** w_Z, ** w_X, ** w_Y;
+
+class MatrixMult : public event_based_actor {
+	behavior make_behavior() override {
+		return {
+			[=]( const WorkMsg & val ) -> void {
+				unsigned int w = val.b;
+				for ( unsigned int i = 0; i < yc; i += 1 ) { // multiply X_row by Y_col and sum products
+					w_Z[w][i] = 0;
+					for ( unsigned int j = 0; j < xc; j += 1 ) {
+						w_Z[w][i] += w_X[w][j] * w_Y[j][i];
+					} // for
+				} // for
+				
+				if ( __atomic_add_fetch( &actorCnt, 1, __ATOMIC_SEQ_CST ) == xr ) {
+					aout(this) << (steady_clock::now() - starttime).count() * ( MaxProcs / Processors ) / 1'000'000'000.0 << endl;
+				} // if
+				this->quit();
+				return;
+			}
+		};
+	}
+  public:
+	MatrixMult( caf::actor_config & cfg ) : event_based_actor( cfg ) {}
+}; // MatrixMult
+
+void caf_main( actor_system & sys ) {
+	starttime = steady_clock::now();
+
+	for ( unsigned int i = 0; i < xr; i += 1 ) {		// create actors
+		actors[i] = sys.spawn<MatrixMult>();
+	} // for
+
+	caf::scoped_actor self{sys};
+	for ( unsigned int i = 0; i < xr; i += 1 ) {		// start actors
+		self->send( actors[i], WorkMsg{i} );
+	} // for
+} // caf_main
+
+int main( int argc, char * argv[] ) {
+	switch ( argc ) {
+      case 6:
+		if ( strcmp( argv[5], "d" ) != 0 ) {			// default ?
+			MaxProcs = stoi( argv[5] );
+			if ( MaxProcs < 1 ) goto Usage;
+		} // if
+	  case 5:
+		if ( strcmp( argv[4], "d" ) != 0 ) {			// default ?
+			Processors = stoi( argv[4] );
+			if ( Processors < 1 ) goto Usage;
+		} // if
+	  case 4:
+		if ( strcmp( argv[3], "d" ) != 0 ) {			// default ?
+			xr = stoi( argv[3] );
+			if ( xr < 1 ) goto Usage;
+		} // if
+	  case 3:
+		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
+			xc = stoi( argv[2] );
+			if ( xc < 1 ) goto Usage;
+		} // if
+	  case 2:
+		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
+			yc = stoi( argv[1] );
+			if ( yc < 1 ) goto Usage;
+		} // if
+	  case 1:											// use defaults
+		break;
+	  default:
+	  Usage:
+		cerr << "Usage: " << argv[0]
+			 << " [ yc (> 0) | 'd' (default " << yc
+			 << ") ] [ xc (> 0) | 'd' (default " << xc
+			 << ") ] [ xr (> 0) | 'd' (default " << xr
+			 << ") ] [ processors (> 0) | 'd' (default " << Processors
+			 << ") ]" << endl;
+		exit( EXIT_FAILURE );
+	} // switch
+
+    xr = xr / ( MaxProcs / Processors );
+
+	//cout << Actors << " " << Set << " " << Rounds << " " << Processors << endl;
+	actors = new actor[xr];
+
+	caf::core::init_global_meta_objects();
+	caf::exec_main_init_meta_objects<id_block::custom_types_1>();
+
+	caf::actor_system_config cfg;
+	cfg.set( "caf.scheduler.max-threads", Processors );
+	caf::actor_system system { cfg };
+
+	unsigned int r, c;
+	int * Z[xr], * X[xr], * Y[xc];
+
+	w_Z = Z;
+	w_Y = Y;
+	w_X = X;
+
+	for ( r = 0; r < xr; r += 1 ) {						// create/initialize X matrix
+		X[r] = new int[xc];
+		for ( c = 0; c < xc; c += 1 ) {
+			X[r][c] = r * c % 37;						// for timing
+		} // for
+	} // for
+	for ( r = 0; r < xc; r += 1 ) {						// create/initialize Y matrix
+		Y[r] = new int[yc];
+		for ( c = 0; c < yc; c += 1 ) {
+			Y[r][c] = r * c % 37;						// for timing
+		} // for
+	} // for
+	for ( r = 0; r < xr; r += 1 ) {						// create Z matrix
+		Z[r] = new int[yc];
+	} // for
+
+	caf::exec_main<>(caf_main, argc, argv);
+	
+	for ( r = 0; r < xr; r += 1 ) {						// deallocate X and Z matrices
+		delete [] X[r];
+		delete [] Z[r];
+	} // for
+	for ( r = 0; r < xc; r += 1 ) {						// deallocate Y matrix
+		delete [] Y[r];
+	} // for
+} // main
+//CAF_MAIN()
+
+// /usr/bin/time -f "%Uu %Ss %Er %Mkb" a.out
+
+// Local Variables: //
+// compile-command: "g++-10 -Wall -O3 -std=c++17 -ICAF/actor-framework/libcaf_core -ICAF/actor-framework/libcaf_core/caf -ICAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_io CAFMatrix.cpp -lcaf_io -lcaf_core -Wl,-rpath=CAF/actor-framework/build/libcaf_core" //
+// End: //
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFRepeat.cpp
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFRepeat.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFRepeat.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
@@ -0,0 +1,188 @@
+#include <iostream>
+using namespace std;
+#include <chrono>
+using namespace chrono;
+
+#include "caf/actor_ostream.hpp"
+#include "caf/caf_main.hpp"
+#include "caf/event_based_actor.hpp"
+#include "caf/all.hpp"
+using namespace caf;
+
+struct IntMsg;
+struct CharMsg;
+
+CAF_BEGIN_TYPE_ID_BLOCK(custom_types_1, first_custom_type_id)
+CAF_ADD_TYPE_ID(custom_types_1, (IntMsg))
+CAF_ADD_TYPE_ID(custom_types_1, (CharMsg))
+CAF_END_TYPE_ID_BLOCK(custom_types_1)
+
+// --(rst-foo-begin)--
+struct IntMsg {
+	int val;
+};
+struct CharMsg {
+	char val;
+};
+
+template <class Inspector>
+bool inspect(Inspector& f, IntMsg& x) {
+	return f.object(x).fields(f.field("val", x.val));
+}
+
+template <class Inspector>
+bool inspect(Inspector& f, CharMsg& x) {
+	return f.object(x).fields(f.field("val", x.val));
+}
+
+size_t Messages = 100000, Processors = 4, Times = 100, Factor = 20;
+
+time_point<steady_clock> starttime;
+actor * client;
+actor * servers;
+unsigned int actorCnt = 0;
+
+class Client : public event_based_actor {
+    IntMsg * intmsg;
+	CharMsg * charmsg;
+	size_t results = 0, times = 0;
+
+    void reset() {
+		times += 1;
+		if ( times == Times ) {
+			for ( unsigned int i = 0; i < Messages; i += 1 ) {
+                this->send( servers[i], 0 );
+			} // for
+			if ( __atomic_add_fetch( &actorCnt, 1, __ATOMIC_SEQ_CST ) == Messages + 1 ) {
+                aout(this) << (steady_clock::now() - starttime).count() * Factor / 1'000'000'000.0 << endl;
+            } // if
+            this->quit();
+            return;
+		}
+		results = 0;
+		this->send( this, 0 );
+	}
+    
+	behavior make_behavior() override {
+		return {
+			[=]( IntMsg & msg ) -> void {
+				results++;
+                if ( results == 2 * Messages ) reset();
+			},
+            [=]( CharMsg & msg ) -> void {
+                results++;
+                if ( results == 2 * Messages ) reset();
+            },
+            [=]( int & ) -> void {
+                for ( size_t i = 0; i < Messages; i += 1 ) { // send out work
+                    this->send( servers[i], intmsg[i] );
+                    this->send( servers[i], charmsg[i] );
+                }
+            }
+		};
+	}
+  public:
+	Client( caf::actor_config & cfg ) : event_based_actor( cfg ) {
+        intmsg = new IntMsg[Messages];
+		charmsg = new CharMsg[Messages];
+    }
+    ~Client() {
+		delete [] charmsg;
+		delete [] intmsg;
+	}
+}; // Client
+
+class Server : public event_based_actor {
+	behavior make_behavior() override {
+		return {
+			[=]( IntMsg & msg ) -> void {
+				msg.val = 7;
+                send( *client, msg );
+			},
+            [=]( CharMsg & msg ) -> void {
+                msg.val = 'x';
+                this->send( *client, msg );
+            },
+            [=]( int & ) -> void {
+                if ( __atomic_add_fetch( &actorCnt, 1, __ATOMIC_SEQ_CST ) == Messages + 1 ) {
+					aout(this) << (steady_clock::now() - starttime).count() / 1'000'000'000.0 << endl;
+				} // if
+                this->quit();
+				return;
+            }
+		};
+	}
+  public:
+	Server( caf::actor_config & cfg ) : event_based_actor( cfg ) {}
+}; // Server
+
+void caf_main( actor_system & sys ) {
+	starttime = steady_clock::now();
+
+    *client = sys.spawn<Client>();
+
+	for ( unsigned int i = 0; i < Messages; i += 1 ) {		// create actors
+		servers[i] = sys.spawn<Server>();
+	} // for
+
+	caf::scoped_actor self{sys};
+    self->send( *client, 0 );
+} // caf_main
+
+int main( int argc, char * argv[] ) {
+	switch ( argc ) {
+      case 5:
+		if ( strcmp( argv[4], "d" ) != 0 ) {			// default ?
+			Factor = stoi( argv[4] );
+			if ( Factor < 1 ) goto Usage;
+		} // if
+      case 4:
+		if ( strcmp( argv[3], "d" ) != 0 ) {			// default ?
+			Times = stoi( argv[3] );
+			if ( Times < 1 ) goto Usage;
+		} // if
+	  case 3:
+		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
+			Processors = stoi( argv[2] );
+			if ( Processors < 1 ) goto Usage;
+		} // if
+	  case 2:
+		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
+			Messages = stoi( argv[1] );
+			if ( Messages < 1 ) goto Usage;
+		} // if
+	  case 1:											// use defaults
+		break;
+	  default:
+	  Usage:
+		cerr << "Usage: " << argv[0]
+			 << ") ] [ messages (> 0) | 'd' (default " << Messages
+			 << ") ] [ processors (> 0) | 'd' (default " << Processors
+             << ") ] [ Times (> 0) | 'd' (default " << Times
+			 << ") ]" << endl;
+		exit( EXIT_FAILURE );
+	} // switch
+
+    Times = Times / Factor;
+
+	//cout << Actors << " " << Set << " " << Rounds << " " << Processors << endl;
+	servers = new actor[Messages];
+    client = new actor();
+
+	caf::core::init_global_meta_objects();
+	caf::exec_main_init_meta_objects<id_block::custom_types_1>();
+    // caf::exec_main_init_meta_objects<>();
+
+	caf::actor_system_config cfg;
+	cfg.set( "caf.scheduler.max-threads", Processors );
+	caf::actor_system system { cfg };
+
+	caf::exec_main<>(caf_main, argc, argv);
+} // main
+
+
+// /usr/bin/time -f "%Uu %Ss %Er %Mkb" a.out
+
+// Local Variables: //
+// compile-command: "g++-10 -Wall -O3 -std=c++17 -ICAF/actor-framework/libcaf_core -ICAF/actor-framework/libcaf_core/caf -ICAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_io CAFMatrix.cpp -lcaf_io -lcaf_core -Wl,-rpath=CAF/actor-framework/build/libcaf_core" //
+// End: //
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFSendDynamic.cpp
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFSendDynamic.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFSendDynamic.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
@@ -0,0 +1,62 @@
+#include <iostream>
+using namespace std;
+#include <chrono>
+using namespace chrono;
+
+#include "caf/actor_ostream.hpp"
+#include "caf/caf_main.hpp"
+#include "caf/event_based_actor.hpp"
+using namespace caf;
+
+int Times = 2'000'000;									// default values
+time_point<steady_clock> starttime;
+
+class Send : public event_based_actor {
+  public:
+	Send( caf::actor_config & cfg ) : event_based_actor( cfg ) {}
+
+	behavior make_behavior() override {
+		return {
+			[=]( int & cnt ) -> void {
+				if ( cnt >= Times ) {
+					aout(this) << (steady_clock::now() - starttime).count() / Times << endl;
+					this->quit();
+					return;
+				} // if
+				//aout(this) << cnt << endl;
+				this->send( spawn<Send>(), cnt + 1 );
+			}
+		};
+	}
+}; // Send
+
+void caf_main( actor_system & sys ) {
+	auto starter = sys.spawn<Send>();
+	starttime = steady_clock::now();
+	caf::anon_send( starter, 0 );
+} // caf_main
+
+int main( int argc, char * argv[] ) {
+	switch ( argc ) {
+	  case 2:
+		if ( strcmp( argv[1], "d" ) != 0 ) { Times = stoi( argv[1] ); }
+		if ( Times < 1 ) goto Usage;
+	  case 1:											// use defaults
+		break;
+	  default:
+	  Usage:
+		cerr << "Usage: " << argv[0] << " [ times (> 0) ]" << endl;
+		exit( EXIT_FAILURE );
+	} // switch
+
+	caf::exec_main_init_meta_objects<>();
+	caf::core::init_global_meta_objects();
+	return caf::exec_main<>(caf_main, argc, argv);
+} // main
+//CAF_MAIN()
+
+// /usr/bin/time -f "%Uu %Ss %Er %Mkb" a.out
+
+// Local Variables: //
+// compile-command: "g++-10 -O3 -Wall -std=c++17 -ICAF/actor-framework/libcaf_core -ICAF/actor-framework/libcaf_core/caf -ICAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_io CAFSendDynamic.cpp -lcaf_io -lcaf_core -Wl,-rpath=CAF/actor-framework/build/libcaf_core" //
+// End: //
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFSendStatic.cpp
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFSendStatic.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/CAFSendStatic.cpp	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
@@ -0,0 +1,62 @@
+#include <iostream>
+using namespace std;
+#include <chrono>
+using namespace chrono;
+
+#include "caf/actor_ostream.hpp"
+#include "caf/caf_main.hpp"
+#include "caf/event_based_actor.hpp"
+using namespace caf;
+
+int Times = 5'000'000;									// default values
+time_point<steady_clock> starttime;
+
+class Send : public event_based_actor {
+  public:
+	Send( caf::actor_config & cfg ) : event_based_actor( cfg ) {}
+
+	behavior make_behavior() override {
+		return {
+			[=]( int & cnt ) -> void {
+				if ( cnt >= Times ) {
+					aout(this) << (steady_clock::now() - starttime).count() / Times << endl;
+					this->quit();
+					return;
+				} // if
+				//aout(this) << cnt << endl;
+				this->send( this, cnt + 1 );
+			}
+		};
+	}
+}; // Send
+
+void caf_main( actor_system & sys ) {
+	auto starter = sys.spawn<Send>();
+	starttime = steady_clock::now();
+	caf::anon_send( starter, 0 );
+} // caf_main
+
+int main( int argc, char * argv[] ) {
+	switch ( argc ) {
+	  case 2:
+		if ( strcmp( argv[1], "d" ) != 0 ) { Times = stoi( argv[1] ); }
+		if ( Times < 1 ) goto Usage;
+	  case 1:											// use defaults
+		break;
+	  default:
+	  Usage:
+		cerr << "Usage: " << argv[0] << " [ times (> 0) ]" << endl;
+		exit( EXIT_FAILURE );
+	} // switch
+
+	caf::exec_main_init_meta_objects<>();
+	caf::core::init_global_meta_objects();
+	return caf::exec_main<>(caf_main, argc, argv);
+} // main
+//CAF_MAIN()
+
+// /usr/bin/time -f "%Uu %Ss %Er %Mkb" a.out
+
+// Local Variables: //
+// compile-command: "g++-10 -O3 -Wall -std=c++17 -ICAF/actor-framework/libcaf_core -ICAF/actor-framework/libcaf_core/caf -ICAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_core -LCAF/actor-framework/build/libcaf_io CAFSendStatic.cpp -lcaf_io -lcaf_core -Wl,-rpath=CAF/actor-framework/build/libcaf_core" //
+// End: //
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/caf-application.conf
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/caf-application.conf	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/caf/caf-application.conf	(revision b86d14c0dd9ebe67e025cb4b308ecd73f007bbab)
@@ -0,0 +1,5 @@
+caf {
+    scheduler {
+        max-threads = 1
+    }
+}
