The write thread in avalon is only ever actually woken up by timeout so remove the write semaphore and use a simple sleep poll.