In a word, no. Diamond never uses polling for I/O transfers. Whenever a thread has to wait for a channel transfer, it is descheduled and other threads continue to execute. The waiting thread will resume when the completion of the transfer is signalled by an interrupt.
The mistaken idea that Diamond polls probably derives from an incorrect statement in a 2006 article by M. Raulet et al, Rapid Prototyping for Heterogeneous Multicomponent Systems: An MPEG-4 Stream over a UMTS Communication Link (EURASIP Journal on Applied Signal Processing Volume 2006, Article ID 64369, 1-13, DOI 10.1155/ASP/2006/64369).
This article stated that '[in 3L Diamond,] data transfers are realized using DMA, but without any computation parallelism which is nearly equivalent to polling technique.' This is simply a misunderstanding of how Diamond works. A thread that is waiting for a channel transfer is indeed blocked and performs no more computation until the transfer has completed, but other threads continue to run, providing the 'computation parallelism' that is claimed to be absent. There is no polling (or its equivalent) in Diamond communications.




