Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!yale!eagle.wesleyan.edu!rcook From: rcook@eagle.wesleyan.edu Newsgroups: comp.sys.mac.programmer Subject: asynchronous question Message-ID: <1990Nov19.130139.35978@eagle.wesleyan.edu> Date: 19 Nov 90 18:01:38 GMT Organization: Wesleyan University Computing Center Lines: 36 Suppose I am making two asynchronous AppleTalk (or Device Manager, for that matter) like this: var MyParmBlock: ParmBlkPtr; async: boolean; begin ... async := true; { make the calls asynchronously } MyParmBlk := ParmBlkPtr(NewPtr(sizeof(ParmBlkPtr))); with MyParmBlock^ do begin { fill in data } end; err := SomeAppleTalkCall(MyParmBlock,async); with MyParmBlock^ do begin { fill in some more data } end; err := SomeOtherAppleTalkCall(MyParmBlock,async); ... end; Assuming the first AppleTalk call has not yet been completed by the time the second call is made, is it safe to reuse MyParmBlock in this way? Ignore for now the fact that I can't go back and check if the first call was completed successfully. In other words, when something is placed in an I/O queue, is a copy of the parameter block made or is a pointer to your data placed in the queue instead? I assume it makes a copy, but I want to hear this from someone who knows for sure. Thanks. Randall Cook rcook@eagle.wesleyan.edu