Path: utzoo!utgpu!watserv1!watmath!att!pacbell!pacbell.com!ucsd!swrinde!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!caen!ox.com!tbomb.ice.com!time From: time@tbomb.ice.com (Tim Endres) Newsgroups: comp.sys.mac.programmer Subject: Re: How do you CTB CMListen()? Summary: CTB ADSP Tools will hang on simultaneous peer CMRead()s. Keywords: CTB ADSP Communications Message-ID: Date: 31 Aug 90 13:24:41 GMT Reply-To: time@tbomb.ice.com Organization: ICE Engineering, Inc. Lines: 23 X-Mailer: uMail - Mac Release: 0.1.2 Well, after fixing my hard drive, and getting both machines back on line, I have solved this mystery, An important feature of the ADSP tool in documented in these paragraphs. Well, I have managed to solve the problem. Boy, talk about a lack of documentation on CMListen! The problem, in my case, was that I had both connections performing a "flush_connection()" simultaneously upon establishing the connection. This was a carry over from the old "Serial Manager" days, where I religously had to flush modem garbage from the incoming data stream. I implemented the flush call with a call to CMRead() with a specified timeout. Thus, I was trying to empty any available data using a timeout to avoid hanging for data that was not there. BUT, for some reason, when both parties of an ADSP connection try to simultaneously CMRead(), it is certain HANG for both parties. When I removed the flush_connection() call, all worked well. Further, I think using the CMReset() call for the flush_connection() is the "correct" answer, and is what I am doing now. Be aware of this feature of the ADSP tool. ------------------------------------------------------------- Tim Endres | time@ice.com ICE Engineering | uunet!ice.com!time 8840 Main Street | Whitmore Lake MI. 48189 | --- Disclaimed.