diff options
Diffstat (limited to 'src/ipcpd')
| -rw-r--r-- | src/ipcpd/unicast/fa.c | 15 | 
1 files changed, 13 insertions, 2 deletions
| diff --git a/src/ipcpd/unicast/fa.c b/src/ipcpd/unicast/fa.c index e0727e85..e154d785 100644 --- a/src/ipcpd/unicast/fa.c +++ b/src/ipcpd/unicast/fa.c @@ -274,7 +274,8 @@ static void * fa_handle_packet(void * o)  int fa_init(void)  { -        int i; +        pthread_condattr_t cattr; +        int                i;          for (i = 0; i < PROG_MAX_FLOWS; ++i)                  destroy_conn(i); @@ -285,9 +286,17 @@ int fa_init(void)          if (pthread_mutex_init(&fa.mtx, NULL))                  goto fail_mtx; -        if (pthread_cond_init(&fa.cond, NULL)) +        if (pthread_condattr_init(&cattr)) +                goto fail_cattr; + +#ifndef __APPLE__ +        pthread_condattr_setclock(&cattr, PTHREAD_COND_CLOCK); +#endif +        if (pthread_cond_init(&fa.cond, &cattr))                  goto fail_cond; +        pthread_condattr_destroy(&cattr); +          list_head_init(&fa.cmds);          fa.fd = dt_reg_comp(&fa, &fa_post_packet, FA); @@ -295,6 +304,8 @@ int fa_init(void)          return 0;   fail_cond: +        pthread_condattr_destroy(&cattr); + fail_cattr:          pthread_mutex_destroy(&fa.mtx);   fail_mtx:          pthread_rwlock_destroy(&fa.flows_lock); | 
