Article View: fras.text.programmieren
Article #28Re: Task-Fragen
From: Erik Wasser
Date: Fri, 15 Sep 1995 10:25
Date: Fri, 15 Sep 1995 10:25
61 lines
3188 bytes
3188 bytes
S.ZIMMERT@AME.osn.de (Steffen Zimmert) benutzte seine Tastatur am 13.09.1995 um 18:24:00 Uhr, um folgenden Text unter dem Betreff "Task-Fragen" zu erzeugen: > Hallo liebe Leute! > > Beim Programmieren stellte sich mir das Problem, daß mein Programm zwei Dinge > [...] > anlegen. Hört sich sinnvoll an. > Zum Erzeugen des Task dachte ich an die Verwendung von `CreateTask()` aus der > amiga.lib, da dies offensichtlich die komfortabelste Möglichkeit darstellt. Das ist falsch: ein Task, darf nicht auf die dos.library zugreifen. Das steht aber auch in der Beschreibung von 'amiga.lib/CreateTask()'. Dazu mußt du dos.library/CreateNewProcess() benutzen. > Unter anderem muß auch die Adresse einer Funktion angegeben werden, mit der der > Task seine Arbeit aufnimmt. Die in den Beispielen aufgeführten Funktionen sind > alle vom Typ `void function(void)`. Ist es vorgeschrieben, daß nur > void-Funktionen zum Einsatz kommen dürfen oder ist auch die Übergabe von > Parametern nach dem Motto `void function(LONG Type)` möglich? Nein, Parameter kannst du nicht übergeben! Weder bei deiner noch bei meiner Möglichkeit. Einzige Möglichkeit: dos/dostags.h und dort bei 'NP_Arguments' schauen. Habe ich selber aber noch nicht ausprobiert. > Eine weitere Frage hätte ich zur Koordination zwischen den beiden Tasks. Es ist > logisch und auch im RKRM angeführt, daß der Haupttask erst beendet werden kann, > wenn der Child-Task seine Arbeit beendet hat. Kann man dafür eine globale > Variable definieren, die dann vom Child-Task je nach Zustand gesetzt wird? Oder > kann mir jemand eine elegantere Lösung präsentieren? Du setzte eine globale Variabel runter, die dann abgefragt wird, wenn der Maintask sich beenden soll. Du kannst dem Maintask eine Nachricht schicken. Programmtechnisch genauso gut oder schlecht! B-) > > Als letztes würde mich noch interessieren, wie die Verwendung der Bibliotheken > zwischen den einzelnen Tasks geregelt ist. Laut RKRM ist es nicht möglich, die > Library-Pointer des Haupt-Task an den Child-Task zu übergeben, richtig(Außer der > Exec-Library)? Heißt das für mich, jede Bibliothek nochmal durch den Child-Task > zu öffnen, um eine darin enthaltene Funktion nutzen zu können? Offiziell schon, aber das gehört nur zu gutem Programmierstill. Sollte man machen, wg. Kompatibilitätsgründen! > Was passiert eigentlich, wenn der Child-Task während der Ausführung hängen > bleibt? Normalerweise kann man dann ja das Programm nicht beenden.... Pech gehabt! Kann man nicht viel machen! --- So long... Fuzz (@AMB.gun.de)
Technical Details
Message-ID:
<wWXDDMD256aCz4@-fuzz.amb.gun.de>Path:
arc1-ca.pugleaf.net!amb.gun.de!FUZZReferences:
<wVz3gMD356aez2@p-zimmer.ame.osn.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!amb.gun.de!FUZZ From: FUZZ@AMB.GUN.DE (Erik Wasser) Newsgroups: fras.text.programmieren,z-netz.rechner.amiga.programmieren Subject: Re: Task-Fragen Date: 15 Sep 95 12:25:39 +0200 Message-ID: <wWXDDMD256aCz4@-fuzz.amb.gun.de> References: <wVz3gMD356aez2@p-zimmer.ame.osn.de> X-Mailer: MicroDot 1.11beta12 [REGISTERED 000256] X-Gateway: ZCONNECT UH ldb.han.de [UUCPfZ V5.64 U002] MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-ZC-Telefon: V+49-221-4303752