Changeset 5643:26caa60db561 in roaraudio


Ignore:
Timestamp:
09/11/12 15:50:50 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Updated VIO CMD to work around kernel bugs in Linux kernel.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r5641 r5643  
    1010          (replaced by CPI) (Closes: #278) 
    1111        * Changed default linkage model for ELF to indirect (Closes: #281) 
     12        * Updated VIO CMD to work around kernel bugs in Linux kernel. 
    1213 
    1314v. 1.0beta5 - Mon Aug 20 2012 23:52 CEST 
  • libroar/vio_cmd.c

    r5634 r5643  
    352352  ROAR_DBG("roar_vio_cmd_read(*): max_fh=%i", max_fh); 
    353353 
    354   if ( (ret = select(max_fh + 1, rfhs, wfhs, NULL, &tv)) == -1 ) 
     354  if ( (ret = select(max_fh + 1, rfhs, wfhs, NULL, &tv)) == -1 ) { 
     355#ifdef EINTR 
     356   if ( errno == EINTR ) { 
     357    ROAR_DBG("roar_vio_cmd_read(*): Ooops. Something went wrong. (will try to continue)"); 
     358    continue; 
     359   } 
     360#endif 
     361#ifdef ERESTARTNOHAND 
     362   if ( errno == ERESTARTNOHAND ) { 
     363    ROAR_WARN("roar_vio_cmd_read(*): We hit a kernel bug. Haha! (will try to continue)"); 
     364    continue; 
     365   } 
     366#endif 
    355367   return -1; 
     368  } 
    356369 
    357370  ROAR_DBG("roar_vio_cmd_read(*): select(*) = %i", ret); 
     
    377390     tp   = tbuf; 
    378391     tlen = 0; 
    379      if ( (tlen = roar_vio_read(state->next, tp, ROAR_VIO_CMD_BUFSIZE)) == -1 ) 
     392     if ( (tlen = roar_vio_read(state->next, tp, ROAR_VIO_CMD_BUFSIZE)) == -1 ) { 
     393      tlen = 0; 
    380394      continue; 
     395     } 
    381396    } 
    382397 
Note: See TracChangeset for help on using the changeset viewer.