Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!apple!oliveb!amiga!kodiak From: kodiak@amiga.UUCP (Robert R. Burns) Newsgroups: comp.sys.amiga.tech Subject: Re: narrator problem Message-ID: <4058@amiga.UUCP> Date: 12 Jul 89 18:06:17 GMT References: <2210@goanna.oz> Reply-To: kodiak@tooter.UUCP (Robert R. Burns) Organization: Commodore-Amiga Inc, Los Gatos CA Lines: 20 In article <2210@goanna.oz> phi@goanna.oz (Philip Hingston) writes: ) /* Here's the crunch */ ) SendIO(wmes); ... ) while(rmes->voice.message.io_Error != ND_NoWrite) { ... ) GetMsg(WPort); You are assuming that when the read responds with ND_NoWrite, that the write request will be completed and waiting for you at the WPort. This is not necessarily the case -- i.e. there's a race condition here. Change GetMsg(WPort) to WaitIO(wmes). - Kodiak -- Bob Burns, {cbmvax,oliveb,well}!amiga!kodiak _ | /_ _|. _ | Commodore __ |_) _ |_ _ )' |<(_)(_)|(_\|< /\ | ||| _` /\ |_)(_\| )(_\ | | \ Software ___/..\|\/|||__|/..\___ Faith