@ -209,9 +209,17 @@ static inline int avalon_gets(int fd, uint8_t *buf, struct thr_info *thr,
ssize_t ret = 0 ;
ssize_t ret = 0 ;
while ( true ) {
while ( true ) {
struct timeval timeout = { 0 , 100000 } ;
struct timeval timeout ;
fd_set rd ;
fd_set rd ;
timeout . tv_sec = 0 ;
/* If we get a restart message, still check if there's
* anything in the buffer waiting to be parsed */
if ( unlikely ( thr - > work_restart ) )
timeout . tv_usec = 0 ;
else
timeout . tv_usec = 100000 ;
FD_ZERO ( & rd ) ;
FD_ZERO ( & rd ) ;
FD_SET ( fd , & rd ) ;
FD_SET ( fd , & rd ) ;
ret = select ( fd + 1 , & rd , NULL , NULL , & timeout ) ;
ret = select ( fd + 1 , & rd , NULL , NULL , & timeout ) ;
@ -232,7 +240,7 @@ static inline int avalon_gets(int fd, uint8_t *buf, struct thr_info *thr,
continue ;
continue ;
}
}
if ( thr - > work_restart ) {
if ( unlikely ( thr - > work_restart ) ) {
applog ( LOG_DEBUG , " Avalon: Work restart " ) ;
applog ( LOG_DEBUG , " Avalon: Work restart " ) ;
return AVA_GETS_RESTART ;
return AVA_GETS_RESTART ;
}
}