diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2014-12-03 20:30:25 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2014-12-03 20:30:25 +0100 |
commit | e7d346892881259a62386d18c14a7cf1ba9a916f (patch) | |
tree | 15966fc2a40c1a3b4fab71d1386713600c7e1b44 /src/worker.c | |
parent | 5c214383ebb7efb088e184854ddd3a7530086c83 (diff) | |
download | biruda-e7d346892881259a62386d18c14a7cf1ba9a916f.tar.gz biruda-e7d346892881259a62386d18c14a7cf1ba9a916f.tar.bz2 |
handling worker state and mode
Diffstat (limited to 'src/worker.c')
-rw-r--r-- | src/worker.c | 20 |
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; |