CompuServe Messages

#Task and Msgs

    13-Apr-88 23:50:13
Sb: #119178-#Task and Msgs
Fm: Michael Riehle 76450,26
To: Michael Riehle 76450,26
Continued from last msg BEGIN p := FindPort("Intercom"); r := CreatePort("Mailbox1",0); m := MyRequestPtr(CreateExtIO(r, TSIZE(MyRequest))); FOR i := 1 TO 10 DO m^.mrData := "p1 – OK."; PutMsg(p,MessagePtr(m)); WaitReply(); END; m^.mrData := "quit"; PutMsg(p,MessagePtr(m)); WaitReply(); DeleteExtIO(IORequestPtr(n),SIZE(n^)); DeletePort(r); END p1; BEGIN WriteString("Entering program"); WriteLn; Intercom := CreatePort("Intercom", 0); IF CreateHeap(32768) THEN WriteString("Heap created…"); memreqs := MemReqSet{MemPublic, MemClear}; Task1 := TaskPtr(AllocMem(LONGCARD(TSIZE(Task)), memreqs)); WriteString("Task1 structure allocated…"); WITH Task1^ DO WITH tcNode DO lnType := BYTE(NTTask); lnName := NULL; END; tcSPLower := ADR(Stack1); tcSPUpper := ADR(Stack1[2048]); tcSPReg := tcSPUpper – 4; END; pv1 := p1; WriteString("Task1 structure initialized…"); AddTask(Task1, ADDRESS(pv1), NULL); WriteString("Task1 added"); WriteLn; FOR i := 1 TO 100000 DO END; quits := 1; REPEAT MyMsg := MyRequestPtr(GetMsg(Intercom)); IF (MyMsg = MyRequestPtr(0)) THEN MyMsg := MyRequestPtr(WaitPort(Intercom)); END; WriteString("Received Msg");WriteLn; WriteString(MyMsg^.mrData); WriteLn; IF (MyMsg^.mrData[0] = "q") THEN INC(quits); END; ReplyMsg(MessagePtr(MyMsg)); UNTIL (quits = 2); FOR i := 1 TO 100000 DO END; FreeMem(Task1, LONGCARD(TSIZE(Task))); WriteString("Task1 structure freed…"); DestroyHeap; WriteString("Heap destroyed"); WriteLn; DeletePort(Intercom); END; END t1. Any help will be appreciated. MCR – San Jose, CA