X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Fsem.c;h=b4c4a89b5135ddeacbb76a22f735c1f62bddb847;hb=HEAD;hp=563cea6d592f9361566c6c73e3578bf35b09d41f;hpb=0f69065a13b6831dadd2aef7928ee9654b7f43d1;p=tlsproxy%2Ftlsproxy.git diff --git a/src/sem.c b/src/sem.c index 563cea6..b4c4a89 100644 --- a/src/sem.c +++ b/src/sem.c @@ -1,7 +1,7 @@ /* * Simple semaphore implementation, P() and V(). * - * Copyright (C) 2011-2012 Simon Ruderich + * Copyright (C) 2011-2014 Simon Ruderich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,8 +19,8 @@ #include "sem.h" -#include #include +#include struct SEM { @@ -31,15 +31,15 @@ struct SEM { SEM *sem_init(int init_value) { SEM *sem = malloc(sizeof(*sem)); - if (NULL == sem) { + if (sem == NULL) { return NULL; } - if (0 != pthread_mutex_init(&sem->mutex, NULL)) { + if (pthread_mutex_init(&sem->mutex, NULL) != 0) { free(sem); return NULL; } - if (0 != pthread_cond_init(&sem->condition, NULL)) { + if (pthread_cond_init(&sem->condition, NULL) != 0) { pthread_mutex_destroy(&sem->mutex); free(sem); return NULL; @@ -50,15 +50,15 @@ SEM *sem_init(int init_value) { } int sem_del(SEM *sem) { - if (NULL == sem) { + if (sem == NULL) { return 0; } - if (0 != pthread_mutex_destroy(&sem->mutex)) { + if (pthread_mutex_destroy(&sem->mutex) != 0) { free(sem); return -1; } - if (0 != pthread_cond_destroy(&sem->condition)) { + if (pthread_cond_destroy(&sem->condition) != 0) { free(sem); return -1; } @@ -69,7 +69,7 @@ int sem_del(SEM *sem) { void P(SEM *sem) { pthread_mutex_lock(&sem->mutex); - while (0 == sem->value) { + while (sem->value <= 0) { pthread_cond_wait(&sem->condition, &sem->mutex); } sem->value--;