summaryrefslogtreecommitdiff
path: root/src/worker.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2014-12-03 20:30:25 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2014-12-03 20:30:25 +0100
commite7d346892881259a62386d18c14a7cf1ba9a916f (patch)
tree15966fc2a40c1a3b4fab71d1386713600c7e1b44 /src/worker.c
parent5c214383ebb7efb088e184854ddd3a7530086c83 (diff)
downloadbiruda-e7d346892881259a62386d18c14a7cf1ba9a916f.tar.gz
biruda-e7d346892881259a62386d18c14a7cf1ba9a916f.tar.bz2
handling worker state and mode
Diffstat (limited to 'src/worker.c')
-rw-r--r--src/worker.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/worker.c b/src/worker.c
index 77ae401..70cb64b 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -152,8 +152,24 @@ static void *worker_func( void *thread_data )
int worker_init( worker_t *worker )
{
- if( worker->state == WORKER_STATE_RUNNING ) {
- return 0;
+ switch( worker->state ) {
+ case WORKER_STATE_RUNNING:
+ fprintf( stderr, "worker %s is already running\n", worker->name );
+ return 0;
+
+ case WORKER_STATE_STOPPED:
+ // execute, skip
+ break;
+ }
+
+ switch( worker->mode ) {
+ case WORKER_EXECUTION_DIRECT:
+ // execute, skip
+ break;
+
+ case WORKER_EXECUTION_DISABLED:
+ fprintf( stderr, "worker %s is disabled, won't execute\n", worker->name );
+ return 0;
}
pthread_attr_t attr;