🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fras.text.programmieren
Article #27

Task-Fragen

#27
From: Steffen Zimmert
Date: Wed, 13 Sep 1995 17:24
41 lines
2815 bytes
Hallo liebe Leute!

Beim Programmieren stellte sich mir das Problem, daß mein  Programm  zwei  Dinge
unabhängig  voneinander  und parallel zu bewerkstelligen hat. Deshalb dachte ich
mir, den anderen Programmteil als separaten Task zu  starten.  Der  Programmteil
Öffnet  das  Audiodevice,  lädt ein IFF-File, spielt es beliebig oft ab und gibt
anschließend  alle  reservierten  Ressourcen  wieder  frei.  Nebenher  hat   das
Hauptprogramm  noch  andere  Dinge  zu erledigen, also will ich einen neuen Task
anlegen.

Dazu habe ich mir einmal die  entsprechenden  Seiten  der  RKRM  `Libraries`  zu
Gemüte geführt und wie üblich sind noch ein paar Fragen offen geblieben, die ich
hoffentlich mit Euerer Hilfe beantworten kann.

Zum Erzeugen des Task dachte ich an die Verwendung von  `CreateTask()`  aus  der
amiga.lib,  da  dies  offensichtlich  die  komfortabelste Möglichkeit darstellt.
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?

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?

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?

Was passiert eigentlich, wenn der Child-Task während der Ausführung hängen
bleibt? Normalerweise kann man dann ja das Programm nicht beenden....
 
        MfG,    Steffen


-- MicroDot V1.10
Technical Details
Message-ID: <wVz3gMD356aez2@p-zimmer.ame.osn.de>
Path: arc1-ca.pugleaf.net!ame.osn.de!S.ZIMMERT

Show Full Headers
Complete Article Headers
Newsgroups: fras.text.programmieren,z-netz.rechner.amiga.programmieren
Message-ID: <wVz3gMD356aez2@p-zimmer.ame.osn.de>
From: S.ZIMMERT@AME.osn.de (Steffen Zimmert)
Path: arc1-ca.pugleaf.net!ame.osn.de!S.ZIMMERT
Organization: AME Erlangen
Subject: Task-Fragen
Date: Wed, 13 Sep 1995 19:24:00 +0200
X-Mailer: MicroDot 1.10 [REGISTERED 000356]
X-Gateway: ZCONNECT UP royal.owl.de [UNIX/Connect v0.73]
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Z-Post: Hagelsteingasse 2
X-Z-Telefon: 09841/5416