#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