From 752b7e257e42eb15d959d4a381b93dca9125ce05 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Wed, 18 Oct 1995 16:44:36 +0000 Subject: [PATCH] select time out must be greater than a vxWorks tick --- src/ca/vxWorks_depen.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ca/vxWorks_depen.c b/src/ca/vxWorks_depen.c index d23cdf4c3..e31d0f1d0 100644 --- a/src/ca/vxWorks_depen.c +++ b/src/ca/vxWorks_depen.c @@ -29,6 +29,9 @@ * Modification Log: * ----------------- * $Log$ + * Revision 1.20 1995/10/12 01:35:31 jhill + * Moved cac_mux_io() to iocinf.c + * * Revision 1.19 1995/08/22 00:27:58 jhill * added cvs style mod log * @@ -46,6 +49,7 @@ LOCAL int cac_os_depen_exit_tid (struct ca_static *pcas, int tid); LOCAL int cac_add_task_variable (struct ca_static *ca_temp); LOCAL void deleteCallBack(CALLBACK *pcb); + /* * cac_gettimeval() @@ -99,7 +103,7 @@ void cac_block_for_io_completion(struct timeval *pTV) unsigned long ticks; unsigned long rate = sysClkRateGet(); -#if NOASYNCRECV +#ifdef NOASYNCRECV cac_mux_io(pTV); #else /* @@ -167,7 +171,7 @@ void cac_block_for_sg_completion(CASG *pcasg, struct timeval *pTV) unsigned long ticks; unsigned long rate = sysClkRateGet(); -#if NOASYNCRECV +#ifdef NOASYNCRECV cac_mux_io(pTV); #else /* @@ -842,12 +846,16 @@ void cac_recv_task(int tid) * ca_task_exit() is called. */ while(TRUE){ -#if NOASYNCRECV +#ifdef NOASYNCRECV taskDelay(60); #else cac_clean_iiu_list(); - timeout.tv_usec = 10000; + /* + * NOTE: this must be longer than one vxWorks + * tick or we will infinite loop + */ + timeout.tv_usec = (4*USEC_PER_SEC)/sysClkRateGet(); timeout.tv_sec = 0; count = cac_select_io(&timeout, CA_DO_RECVS); ca_process_input_queue();