uexblock Kernel Service
Finalidad
Hace que la hebra de kernel actualmente activa no se pueda ejecutar cuando se llame desde un manejador de excepciones de modalidad de usuario.
Sintaxis
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/except.h> tid_t *tid;
Parámetro
| Elemento | Descripción |
|---|---|
| idrastreo | Especifica el ID de hebra de la hebra de kernel actualmente activa que se va a colocar en un estado de espera. |
Descripción
El servicio de kernel uexblock pone el hilo de kernel actualmente activo especificado por el parámetro tid en un estado de espera hasta que se utilice el servicio de kernel uexclear para hacer que el hilo sea ejecutable de nuevo. Si se llama al servicio de kernel uexblock desde el entorno del proceso, el parámetro tid debe especificar el hilo activo actual; de lo contrario, el sistema se bloqueará con un pánico del kernel.
El servicio de kernel uexblock puede utilizarse para controlar perezosamente el acceso de hilos en modo usuario a un recurso compartido utilizable en serie. Varias hebras pueden utilizar un recurso utilizado en serie, pero sólo un proceso a la vez. Cuando una hebra intenta pero no puede acceder al recurso, se puede configurar una excepción de modalidad de usuario para que se produzca. Esto da el control a un manejador de excepciones registrado por el servicio del kernel uexadd. Este manejador de excepciones puede entonces bloquear el hilo usando el servicio del núcleo uexblock hasta que el recurso esté disponible. En este momento, se puede utilizar el servicio de kernel uexclear para hacer ejecutable el hilo bloqueado.
Entorno de ejecución
El servicio uexblock del kernel puede ser llamado desde el entorno de proceso o de interrupción.
Valores de retorno
El servicio uexblock no tiene valores de retorno.