| Tubería Pipe-Sem-Semfilletle Semaphores Implementación para sistemas UNIX. |
Descargar ahora |
Tubería Clasificación y resumen
- Nombre del editor:
- Davide Libenzi
- Sitio web del editor:
- http://www.xmailserver.org/davide.html
Tubería Etiquetas
Tubería Descripción
Implementación de semáfores de Pipe-Sem-Sembilletle para sistemas UNIX. Implementación de semáfores de Pipe-Sem-Sembilletle para sistemas UNIX. Cuando desarrolle aplicaciones de ASYNC, a menudo tuve la necesidad de bloquear los primitivos que podrían ser alimentados dentro de un dispositivo contvelable como selecto, encuesta o epoll. Muchas primitivas de sincronización están disponibles para los sistemas UNIX, pero cualquiera de ellos expone una interfaz contvelable al usuario. En estos casos, si la persona que llama ejecuta una operación hacia abajo en un semáforo de bloqueo, la aplicación dormirá y todo el bucle ASYNC se morirá de hambre debido a la espera. Para hacer frente a este problema en mi software ASYNC, desarrollé una implementación de semáfore basada en la tubería, que llamé a la implementación, la implementación es trivialmente simple y utiliza los mecanismos internos de la tubería para exponer una interfaz de espera contamine. Además de las operaciones estándar de Semaphore, la función PSEM_DEWDN_FD () se puede usar para recuperar un descriptor de archivos que se puede eliminar dentro de una API de suscenso de UNIX, como seleccionar (2), encuesta (2) o EPELL (2). La persona que llama tendrá que esperar a los eventos de entrada (polin), y al recibir el evento en sí, la persona que llama debe invocar la función PSEM_TRY_DAY () para intentar adquirir el semáforo. Tenga en cuenta que recibir un evento de la interfaz de los contaminos, no significa que adquirimos a Semaphore, y la función PSEM_TRY_DAY () deberá llamarse (y probar el código de retorno cero) para completar correctamente la operación hacia abajo
Tubería Software relacionado