Renamed AspectConfig.hpp.in -> FailConfig.hpp.in, updated files accordingly.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1247 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
#ifndef __BREAKPOINTS_AH__
|
#ifndef __BREAKPOINTS_AH__
|
||||||
#define __BREAKPOINTS_AH__
|
#define __BREAKPOINTS_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_EVENT_BREAKPOINTS
|
#ifdef CONFIG_EVENT_BREAKPOINTS
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __GUESTSYS_COM_AH__
|
#ifndef __GUESTSYS_COM_AH__
|
||||||
#define __GUESTSYS_COM_AH__
|
#define __GUESTSYS_COM_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_EVENT_GUESTSYS
|
#ifdef CONFIG_EVENT_GUESTSYS
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __INTERRUPT_AH__
|
#ifndef __INTERRUPT_AH__
|
||||||
#define __INTERRUPT_AH__
|
#define __INTERRUPT_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_EVENT_INTERRUPT
|
#ifdef CONFIG_EVENT_INTERRUPT
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __INTERRUPT_SUPPRESSION_AH__
|
#ifndef __INTERRUPT_SUPPRESSION_AH__
|
||||||
#define __INTERRUPT_SUPPRESSION_AH__
|
#define __INTERRUPT_SUPPRESSION_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_SUPPRESS_INTERRUPTS
|
#ifdef CONFIG_SUPPRESS_INTERRUPTS
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __JUMP_AH__
|
#ifndef __JUMP_AH__
|
||||||
#define __JUMP_AH__
|
#define __JUMP_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_EVENT_JUMP
|
#ifdef CONFIG_EVENT_JUMP
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __JUMP_TO_PREVIOUS_CTX_AH__
|
#ifndef __JUMP_TO_PREVIOUS_CTX_AH__
|
||||||
#define __JUMP_TO_PREVIOUS_CTX_AH__
|
#define __JUMP_TO_PREVIOUS_CTX_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// #if defined(CONFIG_SR_RESTORE) || defined(CONFIG_SR_REBOOT)
|
// #if defined(CONFIG_SR_RESTORE) || defined(CONFIG_SR_REBOOT)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __MEM_ACCESS_BIT_FLIP_AH__
|
#ifndef __MEM_ACCESS_BIT_FLIP_AH__
|
||||||
#define __MEM_ACCESS_BIT_FLIP_AH__
|
#define __MEM_ACCESS_BIT_FLIP_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_FI_MEM_ACCESS_BITFLIP
|
#ifdef CONFIG_FI_MEM_ACCESS_BITFLIP
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
#define __MEM_EVENTS_AH__
|
#define __MEM_EVENTS_AH__
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#if defined(CONFIG_EVENT_MEMREAD) || defined(CONFIG_EVENT_MEMWRITE)
|
#if defined(CONFIG_EVENT_MEMREAD) || defined(CONFIG_EVENT_MEMWRITE)
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __TRAP_AH__
|
#ifndef __TRAP_AH__
|
||||||
#define __TRAP_AH__
|
#define __TRAP_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_EVENT_TRAP
|
#ifdef CONFIG_EVENT_TRAP
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __DISABLE_KEYBOARD_INTERRUPT_AH__
|
#ifndef __DISABLE_KEYBOARD_INTERRUPT_AH__
|
||||||
#define __DISABLE_KEYBOARD_INTERRUPT_AH__
|
#define __DISABLE_KEYBOARD_INTERRUPT_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_DISABLE_KEYB_INTERRUPTS
|
#ifdef CONFIG_DISABLE_KEYB_INTERRUPTS
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __FIREINTERRUPT_AH__
|
#ifndef __FIREINTERRUPT_AH__
|
||||||
#define __FIREINTERRUPT_AH__
|
#define __FIREINTERRUPT_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_FIRE_INTERRUPTS
|
#ifdef CONFIG_FIRE_INTERRUPTS
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __REBOOT_AH__
|
#ifndef __REBOOT_AH__
|
||||||
#define __REBOOT_AH__
|
#define __REBOOT_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
#include "../SALInst.hpp"
|
#include "../SALInst.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_SR_REBOOT
|
#ifdef CONFIG_SR_REBOOT
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
#define __RESTORE_AH__
|
#define __RESTORE_AH__
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
#include "../SALInst.hpp"
|
#include "../SALInst.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_SR_RESTORE
|
#ifdef CONFIG_SR_RESTORE
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __SAVE_AH__
|
#ifndef __SAVE_AH__
|
||||||
#define __SAVE_AH__
|
#define __SAVE_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_SR_SAVE
|
#ifdef CONFIG_SR_SAVE
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef __NONVERBOSE_AH__
|
#ifndef __NONVERBOSE_AH__
|
||||||
#define __NONVERBOSE_AH__
|
#define __NONVERBOSE_AH__
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#ifdef CONFIG_STFU
|
#ifdef CONFIG_STFU
|
||||||
|
|
||||||
|
|||||||
@ -18,5 +18,5 @@ OPTION(CONFIG_FIRE_INTERRUPTS "Target backend: Fire interrupts" OFF)
|
|||||||
OPTION(CONFIG_DISABLE_KEYB_INTERRUPTS "Target backend: Suppress keyboard interrupts" OFF)
|
OPTION(CONFIG_DISABLE_KEYB_INTERRUPTS "Target backend: Suppress keyboard interrupts" OFF)
|
||||||
OPTION(CONFIG_FI_MEM_ACCESS_BITFLIP "deprecated something" OFF)
|
OPTION(CONFIG_FI_MEM_ACCESS_BITFLIP "deprecated something" OFF)
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AspectConfig.hpp.in
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/FailConfig.hpp.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/AspectConfig.hpp)
|
${CMAKE_CURRENT_BINARY_DIR}/FailConfig.hpp)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#ifndef __ASPECT_CONFIG_HPP__
|
#ifndef __FAIL_CONFIG_HPP__
|
||||||
#define __ASPECT_CONFIG_HPP__
|
#define __FAIL_CONFIG_HPP__
|
||||||
|
|
||||||
// #define / #undef the following configuration macros to enable/disable the
|
// #define / #undef the following configuration macros to enable/disable the
|
||||||
// various event sources, fault injection sinks, and miscellaneous other
|
// various event sources, fault injection sinks, and miscellaneous other
|
||||||
@ -28,4 +28,4 @@
|
|||||||
// Fault injection
|
// Fault injection
|
||||||
#cmakedefine CONFIG_FI_MEM_ACCESS_BITFLIP
|
#cmakedefine CONFIG_FI_MEM_ACCESS_BITFLIP
|
||||||
|
|
||||||
#endif /* __ASPECT_CONFIG_HPP__ */
|
#endif /* __FAIL_CONFIG_HPP__ */
|
||||||
@ -4,7 +4,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
#include "controller/ExperimentFlow.hpp"
|
#include "controller/ExperimentFlow.hpp"
|
||||||
|
|
||||||
#define INST_ADDR_FUNC_START 0x4ae6
|
#define INST_ADDR_FUNC_START 0x4ae6
|
||||||
|
|||||||
@ -9,11 +9,11 @@
|
|||||||
#include "../controller/ExperimentFlow.hpp"
|
#include "../controller/ExperimentFlow.hpp"
|
||||||
#include "../SAL/SALInst.hpp"
|
#include "../SAL/SALInst.hpp"
|
||||||
#include "../SAL/bochs/BochsRegister.hpp"
|
#include "../SAL/bochs/BochsRegister.hpp"
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
// Check if aspect dependencies are satisfied:
|
// Check if aspect dependencies are satisfied:
|
||||||
#if !defined(CONFIG_EVENT_CPULOOP) || !defined(CONFIG_EVENT_JUMP)
|
#if !defined(CONFIG_EVENT_CPULOOP) || !defined(CONFIG_EVENT_JUMP)
|
||||||
#error Breakpoint- and jump-events needed! Enable aspects first (see AspectConfig.hpp)!
|
#error Breakpoint- and jump-events needed! Enable aspects first (see FailConfig.hpp)!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace fi;
|
using namespace fi;
|
||||||
|
|||||||
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
#include "../controller/ExperimentFlow.hpp"
|
#include "../controller/ExperimentFlow.hpp"
|
||||||
#include "../SAL/SALInst.hpp"
|
#include "../SAL/SALInst.hpp"
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
// Check aspect dependencies:
|
// Check aspect dependencies:
|
||||||
#if !defined(CONFIG_EVENT_CPULOOP) || !defined(CONFIG_EVENT_MEMACCESS) || !defined(CONFIG_SR_SAVE) || !defined(CONFIG_FI_MEM_ACCESS_BITFLIP)
|
#if !defined(CONFIG_EVENT_CPULOOP) || !defined(CONFIG_EVENT_MEMACCESS) || !defined(CONFIG_SR_SAVE) || !defined(CONFIG_FI_MEM_ACCESS_BITFLIP)
|
||||||
#error Event dependecies not satisfied! Enabled needed aspects in AspectConfig.hpp!
|
#error Event dependecies not satisfied! Enabled needed aspects in FailConfig.hpp!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace fi;
|
using namespace fi;
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
#include "../controller/ExperimentFlow.hpp"
|
#include "../controller/ExperimentFlow.hpp"
|
||||||
#include "../SAL/SALInst.hpp"
|
#include "../SAL/SALInst.hpp"
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
#include "../SAL/bochs/BochsRegister.hpp"
|
#include "../SAL/bochs/BochsRegister.hpp"
|
||||||
|
|
||||||
// Check if aspect dependency is satisfied:
|
// Check if aspect dependency is satisfied:
|
||||||
#ifndef CONFIG_EVENT_CPULOOP
|
#ifndef CONFIG_EVENT_CPULOOP
|
||||||
#error Breakpoint-events needed! Enable aspect first (see AspectConfig.hpp)!
|
#error Breakpoint-events needed! Enable aspect first (see FailConfig.hpp)!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace fi;
|
using namespace fi;
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
#include "SAL/Memory.hpp"
|
#include "SAL/Memory.hpp"
|
||||||
#include "SAL/bochs/BochsRegister.hpp"
|
#include "SAL/bochs/BochsRegister.hpp"
|
||||||
#include "controller/Event.hpp"
|
#include "controller/Event.hpp"
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
#if COOL_FAULTSPACE_PRUNING
|
#if COOL_FAULTSPACE_PRUNING
|
||||||
#include "plugins/tracing/TracingPlugin.hpp"
|
#include "plugins/tracing/TracingPlugin.hpp"
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
#include "SAL/bochs/BochsRegister.hpp"
|
#include "SAL/bochs/BochsRegister.hpp"
|
||||||
#include "controller/Event.hpp"
|
#include "controller/Event.hpp"
|
||||||
#include "util/Logger.hpp"
|
#include "util/Logger.hpp"
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
// Check if configuration dependencies are satisfied:
|
// Check if configuration dependencies are satisfied:
|
||||||
#if !defined(CONFIG_EVENT_BREAKPOINTS) || !defined(CONFIG_DISABLE_KEYB_INTERRUPTS) || !defined(CONFIG_FIRE_INTERRUPTS)
|
#if !defined(CONFIG_EVENT_BREAKPOINTS) || !defined(CONFIG_DISABLE_KEYB_INTERRUPTS) || !defined(CONFIG_FIRE_INTERRUPTS)
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
#include "SAL/bochs/BochsRegister.hpp"
|
#include "SAL/bochs/BochsRegister.hpp"
|
||||||
#include "controller/Event.hpp"
|
#include "controller/Event.hpp"
|
||||||
#include "util/Logger.hpp"
|
#include "util/Logger.hpp"
|
||||||
#include "config/AspectConfig.hpp"
|
#include "config/FailConfig.hpp"
|
||||||
|
|
||||||
// Check if configuration dependencies are satisfied:
|
// Check if configuration dependencies are satisfied:
|
||||||
#if !defined(CONFIG_EVENT_BREAKPOINTS) || !defined(CONFIG_SR_RESTORE) || !defined(CONFIG_SR_SAVE)
|
#if !defined(CONFIG_EVENT_BREAKPOINTS) || !defined(CONFIG_SR_RESTORE) || !defined(CONFIG_SR_SAVE)
|
||||||
|
|||||||
@ -32,6 +32,8 @@ void JobServer::addParam(ExperimentData* exp){
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
volatile unsigned JobServer::m_DoneCount = 0;
|
||||||
|
|
||||||
ExperimentData *JobServer::getDone()
|
ExperimentData *JobServer::getDone()
|
||||||
{
|
{
|
||||||
// FIXME race condition, need to synchronize with
|
// FIXME race condition, need to synchronize with
|
||||||
@ -53,6 +55,34 @@ ExperimentData *JobServer::getDone()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SERVER_PERFORMANCE_MEASURE
|
||||||
|
void JobServer::measure()
|
||||||
|
{
|
||||||
|
cout << "\n[Server] Logging throughput in \"" << PERFORMANCE_LOG_PATH << "\"..." << endl;
|
||||||
|
ofstream m_file(PERFORMANCE_LOG_PATH, std::ios::trunc); // overwrite existing perf-logs
|
||||||
|
if(!m_file.is_open()) {
|
||||||
|
cerr << "[Server] Perf-logging has been enabled"
|
||||||
|
<< "but I was not able to write the log-file \""
|
||||||
|
<< PERFORMANCE_LOG_PATH << "\"." << endl;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
unsigned counter = 0;
|
||||||
|
|
||||||
|
m_file << "time\tthroughput" << endl;
|
||||||
|
unsigned diff = 0;
|
||||||
|
while(!m_finish) {
|
||||||
|
// Format: 1st column (seconds)[TAB]2nd column (throughput)
|
||||||
|
m_file << counter << "\t" << (m_DoneCount - diff) << endl;
|
||||||
|
counter += PERFORMANCE_STEPPING_SEC;
|
||||||
|
diff = m_DoneCount;
|
||||||
|
sleep(PERFORMANCE_STEPPING_SEC);
|
||||||
|
}
|
||||||
|
// NOTE: Summing up the values written in the 2nd column does not
|
||||||
|
// necessarily yield the number of completed experiments/jobs
|
||||||
|
// (due to thread-scheduling behaviour -> not sync'd!)
|
||||||
|
}
|
||||||
|
#endif // SERVER_PERFORMANCE_MEASURE
|
||||||
|
|
||||||
#ifndef __puma
|
#ifndef __puma
|
||||||
/**
|
/**
|
||||||
* This is a predicate class for the remove_if operator
|
* This is a predicate class for the remove_if operator
|
||||||
@ -260,6 +290,9 @@ void CommThread::receiveExperimentResults(Minion& minion, uint32_t workloadID)
|
|||||||
if(m_js.m_runningJobs.remove(workloadID, exp)) { // ExperimentData* found
|
if(m_js.m_runningJobs.remove(workloadID, exp)) { // ExperimentData* found
|
||||||
SocketComm::rcv_msg(minion.getSocketDescriptor(), exp->getMessage() ); // deserialize results.
|
SocketComm::rcv_msg(minion.getSocketDescriptor(), exp->getMessage() ); // deserialize results.
|
||||||
m_js.m_doneJobs.Enqueue(exp); // Put results in done queue..
|
m_js.m_doneJobs.Enqueue(exp); // Put results in done queue..
|
||||||
|
#ifdef SERVER_PERFORMANCE_MEASURE
|
||||||
|
++JobServer::m_DoneCount;
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
// We can receive several results for the same workload id because
|
// We can receive several results for the same workload id because
|
||||||
// we (may) distribute the (running) jobs to a *few* experiment-clients.
|
// we (may) distribute the (running) jobs to a *few* experiment-clients.
|
||||||
|
|||||||
@ -19,6 +19,11 @@
|
|||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// TODO: This should be part of a "server-config".
|
||||||
|
#define SERVER_PERFORMANCE_MEASURE
|
||||||
|
#define PERFORMANCE_LOG_PATH "perf.dat"
|
||||||
|
#define PERFORMANCE_STEPPING_SEC 1
|
||||||
|
|
||||||
namespace fi {
|
namespace fi {
|
||||||
|
|
||||||
class CommThread;
|
class CommThread;
|
||||||
@ -49,7 +54,14 @@ class JobServer
|
|||||||
|
|
||||||
boost::thread* m_serverThread;
|
boost::thread* m_serverThread;
|
||||||
#endif // puma
|
#endif // puma
|
||||||
|
|
||||||
|
#ifdef SERVER_PERFORMANCE_MEASURE
|
||||||
|
static volatile unsigned m_DoneCount; //! the number of finished jobs
|
||||||
|
#ifndef __puma
|
||||||
|
boost::thread* m_measureThread; //! the performance measurement thread
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
//! Atomic counter for Workload IDs.
|
//! Atomic counter for Workload IDs.
|
||||||
SynchronizedCounter m_counter;
|
SynchronizedCounter m_counter;
|
||||||
//! Map of running jobs (referenced by Workload ID
|
//! Map of running jobs (referenced by Workload ID
|
||||||
@ -59,11 +71,14 @@ class JobServer
|
|||||||
//! List of finished experiment results.
|
//! List of finished experiment results.
|
||||||
SynchronizedQueue<ExperimentData*> m_doneJobs;
|
SynchronizedQueue<ExperimentData*> m_doneJobs;
|
||||||
friend class CommThread; //!< CommThread is allowed access the job queues.
|
friend class CommThread; //!< CommThread is allowed access the job queues.
|
||||||
|
|
||||||
public:
|
public:
|
||||||
JobServer(int port = 1111) : m_port(port), m_finish(false), m_noMoreExps(false), m_maxThreads(128), m_threadtimeout(0) {
|
JobServer(int port = 1111) : m_port(port), m_finish(false), m_noMoreExps(false),
|
||||||
|
m_maxThreads(128), m_threadtimeout(0) {
|
||||||
#ifndef __puma
|
#ifndef __puma
|
||||||
m_serverThread = new boost::thread(&JobServer::run, this); // run operator()() in a thread.
|
m_serverThread = new boost::thread(&JobServer::run, this); // run operator()() in a thread.
|
||||||
|
#ifdef SERVER_PERFORMANCE_MEASURE
|
||||||
|
m_measureThread = new boost::thread(&JobServer::measure, this);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
~JobServer()
|
~JobServer()
|
||||||
@ -71,6 +86,9 @@ public:
|
|||||||
#ifndef __puma
|
#ifndef __puma
|
||||||
// Cleanup of m_serverThread, etc.
|
// Cleanup of m_serverThread, etc.
|
||||||
delete m_serverThread;
|
delete m_serverThread;
|
||||||
|
#ifdef SERVER_PERFORMANCE_MEASURE
|
||||||
|
delete m_measureThread;
|
||||||
|
#endif
|
||||||
#endif // __puma
|
#endif // __puma
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -82,6 +100,9 @@ public:
|
|||||||
* and listen for connections.
|
* and listen for connections.
|
||||||
*/
|
*/
|
||||||
void run();
|
void run();
|
||||||
|
#ifdef SERVER_PERFORMANCE_MEASURE
|
||||||
|
void measure();
|
||||||
|
#endif
|
||||||
|
|
||||||
void sendWork(int sockfd);
|
void sendWork(int sockfd);
|
||||||
|
|
||||||
|
|||||||
@ -156,7 +156,7 @@ Dokumentation:
|
|||||||
-> siehe fail/experiments/coolchecksum/experiment.cc FIXME am Ende
|
-> siehe fail/experiments/coolchecksum/experiment.cc FIXME am Ende
|
||||||
-> Lösung: Löschliste
|
-> Lösung: Löschliste
|
||||||
- ggf. zusammen mit Datenstruktur-Implementierungsdetails-TODO (s.u.) angehen
|
- ggf. zusammen mit Datenstruktur-Implementierungsdetails-TODO (s.u.) angehen
|
||||||
- AspectConfig.hpp in cmake-config einbinden (genauso behandeln wie experiments.hpp!)
|
- FailConfig.hpp in cmake-config einbinden (genauso behandeln wie experiments.hpp!)
|
||||||
-> generierte Datei landet in Buildtree, wird nicht mehr eingecheckt
|
-> generierte Datei landet in Buildtree, wird nicht mehr eingecheckt
|
||||||
- variant_config.h in cmake-config einbinden (genauso behandeln wie experiments.hpp!)
|
- variant_config.h in cmake-config einbinden (genauso behandeln wie experiments.hpp!)
|
||||||
-> generierte Datei landet in Buildtree, wird nicht mehr eingecheckt
|
-> generierte Datei landet in Buildtree, wird nicht mehr eingecheckt
|
||||||
|
|||||||
Reference in New Issue
Block a user