Messaggi da e per thread defunti



I messaggi destinati a thread defunti vengono intercettati e viene fatta la passup del thread mittente come una program trap di tipo SENDTODEADTHR.

Un thread che si mette in attesa da un thread defunto viene trattato allo stesso modo (program trap di tipo RECVFROMDEADTHR).

Quando un thread viene terminato viene fatta la stessa passup su tutti i thread che attendevano un messaggio da lui.
Per fare cio` viene mantenuta una struttura dati supplementare: l'albero dei thread in attesa.

Ogni thread mantiene una coda dei thread che sono in attesa di un suo messaggio ed eventualmente puo' far parte a sua volta di una analoga coda di un altro thread; le code vengono aggiornate ad ogni inserzione e rimozione di un thread dalla coda dei thread in attesa.


Esempio di thread che mantengono una coda dei thread che sono in attesa di un loro messaggio

  • I thread [B] e [C] sono in attesa di un messaggio dal thread [A]
  • Il thread [E] e' in attesa di un messaggio dal thread [D]


  • [LancOS Home] [AMPEOS Index] [Indice codice] [Fasi 1 & 2] [Fase 3]