dow_interruptible retornos de función () el código fuente y el análisis

down_interruptible () es una función de la cantidad de señal procesada. Su valor de retorno de cada tres 1. "0" 2. "-ETIME" 3. "- EINTR"

0 representa un rendimiento normal

Tiempo de espera de -ETIME

ruptura -EINTR

 

Obras función:

Si SEM> contador> 0 (para permitir el acceso al semáforo)         

Return 0 (rendimiento normal)

De lo contrario, espere.

código fuente del kernel para

Haga clic (aquí) plegada o desplegada

  1. int down_interruptible (struct semáforo * SEM)
  2. {
  3.  unsigned long flags;
  4.  int resultado = 0;
  5.  
  6.  spin_lock_irqsave (y SEM> cerradura, banderas); // spinlock
  7.  si (probable (SEM> contador> 0))
  8.   SEM> count--;
  9.  más
  10.   resultar = __down_interruptible (sem); // espera para entrar
  11.  spin_unlock_irqrestore (y SEM-> bloqueo, banderas);
  12.  
  13.  return resultado;
  14. }

__down_interruptible ()

Llamar __down_common ()

__down_common () tiene un bucle for

-EINTR devuelve cuando una señal de interrupción para volver -ETIME a la espera de un tiempo de espera.

Devolver 0 convertido semáforo accesible

Por cierto, la cantidad de la señal son diferentes, deben distinguirse.

 

Descripción imagen:

Llegas a casa desde la escuela, hambriento, quiere comer, se fue a la cocina para ver si no hay nada para comer (comer semáforo), si hay ya preparada comida (señal no está ocupada), que vaya inmediatamente a comer (return 0) Si la mamá está haciendo (semáforos en uso), se dice que después de que se despertó con la madre dijo a hacer el bien, primero ir a la cama (sueño), mientras que la sala tiene un reloj de alarma (otras señales), si el arroz cuando no lo hacen, sonó el despertador, que se despertó (retorno -EINTR), o bien esperar hasta que mi madre finalmente se despierta buena comida (también devuelve 0), el estado de tiempo de espera no se tiene en cuenta.

Liberadas nueve artículos originales · ganado elogios 1 · vistas 6705

Supongo que te gusta

Origin blog.csdn.net/u014426028/article/details/96998630
Recomendado
Clasificación