[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: EP4: Dúvida sobre o Bounded Buffer



On Thu, 28 Jun 2001, Wagner Bruna wrote:

> Temos uma duvidazinha: o enunciado do epê diz que
> a fila de sessões deve ser implementada como um
> Bounded Buffer. Mas também diz que, se não houver
> espaço nessa fila, o pedido de conexão deve ser
> recusado. Então, no fundo, não é um Bounded
> Buffer, porque o produtor não espera pelo espaço
> livre na fila?!

É um bounded buffer sim. Caso não haja espaço livre na fila de sessões, o
produtor (a listener thread) fica bloqueado esperando espaço. É exatamente
por isso que novos pedidos de conexão serão recusados: enquanto a listener
estiver bloqueada ela não chama socket.accept()!

> Eu acho que entendi o que deve ser feito: a fila
> coloca os consumidores em espera, mas não o
> produtor; caso o buffer esteja cheio, ela
> simplesmente avisa o produtor que não deu pra
> enfileirar (sem wait). É isso?

Não, é mais simples que isso (vide acima). Recusar pedidos de conexão é
fácil: basta não chamar socket.accept().

Reverbel

> 
> lock(mutex_t); t++; unlock(mutex_t);
> Wagner Bruna - mailto:wbruna@linux.ime.usp.br
> http://www.linux.ime.usp.br/~wbruna
> ^Z
> "I wonder if the stars sign
> the life that is to be mine,
> and would they let their light shine
> enough for me to follow."
> 
>