| Tubo-SEM. Implementação de semáforos de tubo-polible para sistemas UNIX. |
Baixe Agora |
Tubo-SEM. Classificação e resumo
- Nome do editor:
- Davide Libenzi
- Site do editor:
- http://www.xmailserver.org/davide.html
Tubo-SEM. Tag
Tubo-SEM. Descrição
Implementação de semáforos de pipe-polible para sistemas UNIX. Implementação de semáforos do tubo-sem-polviação para sistemas UNIX.Quando desenvolvendo aplicações assíncronas, muitas vezes tive a necessidade de travar primitivos que poderiam ser alimentados dentro de um dispositivo pollable, como Select, Poll ou Epoll. Muitas primitivas de sincronização estão disponíveis para sistemas UNIX, mas qualquer um deles expor uma interface polvinosa ao usuário. Nesses casos, se o chamador executar uma operação para baixo em um semáforo de bloqueio, o aplicativo vai dormir e todo o loop assíncrono ficará fome por causa da espera. Para lidar com este problema no meu software assíncrono, desenvolvi uma implementação de semáforo baseada no tubo, que liguei para o tubo-SEM. A implementação é trivialmente simples e utiliza os mecanismos internos do tubo para expor uma interface de espera polvia. Além das operações padrão do semáforo, a função PSEM_Download_fd () pode ser usada para recuperar um descritor de arquivos que pode ser descartado dentro de uma API Polvicultura Unix como Select (2), Poll (2) ou Epoll (2). O chamador terá que esperar por eventos de entrada (Pollin) e ao receber o próprio evento, o chamador deve invocar a função PSEM_TRY_DOWN () para tentar adquirir o semáforo. Observe que o recebimento de um evento da interface Polvicultle, não significa que adquirimos para o Semáforo, e a função psem_try_down () precisará ser chamada (e testada para o código de retorno zero) para concluir corretamente a operação descendente
Tubo-SEM. Software Relacionado