/*     ,     

  ... */
if (timeout < jiffies) {

/*        ... */
} else {

/*         ... */
}

          -
   ,      .  
.    ,   -
      .  ,   -
    ,    -
 .

       , -
  .    .  ,  -
 jiffies         ,  
    timeout?    
 ,     jiffies  ,  
 timeout,      .   
 jiffies    ,    -
 timeout.     ,    
   , , ,     
 . -     i f -
  !

 ,        
  ,     -
.     <linux/jiffies .h>  .

^define time after(unknown, known) ((long)(known) - (long)(unknown) < 0)

#define time_before(unknown, known) ((long)(unknown) - (long)(known) < 0)

#define time after eq(unknown, known) ((long)(unknown) - (long)(known) >= 0)
tdefine
time before eq(unknown, known) ((long)(known) - (long)(unknown) >= 0)

 unknown     jiffies,  
known  ,     .

 time_after (unknown, known)   true,  
 unknown     known,   
  false.  time_before (unknown, known) -
  true,    unknown  ,  
 known,      false.  
    ,   ,  
 "",      .

    ,   , -
  ,    .

unsigned long timeout = jiffies + HZ/2; /*   
 0.5  */

216  10