08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notas de aula -<br />

Jerônimo C. Pellegrini<br />

( define fila-vip ( make-q ))<br />

( define fila-<strong>com</strong>um ( make-q ))<br />

( define emite<br />

( lambda ( ticket )<br />

( thread-sleep ! 0.100)<br />

( print " Emitindo ticket : " ticket )))<br />

( define print-loop<br />

( lambda ()<br />

( mutex-lock ! filas )<br />

( cond (( not ( empty-queue fila-vip ))<br />

( emite ( dequeue ! fila-vip ))<br />

( mutex-unlock ! filas )<br />

( print-loop ))<br />

(( not ( empty-queue fila-<strong>com</strong>um ))<br />

( emite ( dequeue ! fila-<strong>com</strong>um ))<br />

( mutex-unlock ! filas )<br />

( print-loop ))<br />

( else<br />

( mutex-unlock ! filas )<br />

( print-loop )))))<br />

( define produz-vip<br />

( let (( num 0))<br />

( lambda ()<br />

( set ! num (+ 1 num ))<br />

( mutex-lock ! filas )<br />

( set ! fila-vip ( enqueue ! fila-vip num ))<br />

( mutex-unlock ! filas )<br />

( produz-vip ))))<br />

Versão Preliminar<br />

( define produz-<strong>com</strong>um<br />

( let (( num 0))<br />

( lambda ()<br />

( set ! num (- num 1))<br />

( mutex-lock ! filas )<br />

234<br />

[ 27 de outubro de 2010 at 15:47 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!