summaryrefslogtreecommitdiff
path: root/app/baisy/2.2.1-schulis/src/umgebungswechsel manager
diff options
context:
space:
mode:
Diffstat (limited to 'app/baisy/2.2.1-schulis/src/umgebungswechsel manager')
-rw-r--r--app/baisy/2.2.1-schulis/src/umgebungswechsel manager19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/baisy/2.2.1-schulis/src/umgebungswechsel manager b/app/baisy/2.2.1-schulis/src/umgebungswechsel manager
new file mode 100644
index 0000000..3b4debb
--- /dev/null
+++ b/app/baisy/2.2.1-schulis/src/umgebungswechsel manager
@@ -0,0 +1,19 @@
+PACKET umgebungswechselmanagerDEFINES umgebungswechsel:LET ack=0,nak=1,
+manager=" manager";PROC umgebungswechsel(KNOTEN CONST k,TEXT CONST zieltask,
+INT VAR fstatus):INT VAR kanal;pruefezieltask;IF fstatus=ackTHEN gibkanalfrei
+;sendedatenbankkennungundkanalanmanager;IF fstatus=ackTHEN
+sendesystembaumundaktuellenknotenansohntaskFI ;belegekanalwiederFI .
+pruefezieltask:disablestop;TASK VAR zielmanager:=/(zieltask+manager),
+stellvertreter;IF iserrorTHEN fstatus:=nakELSE fstatus:=ackFI ;clearerror.
+sendedatenbankkennungundkanalanmanager:DATASPACE VAR dsvar:=nilspace;call(
+zielmanager,kanal,dsvar,stellvertreter,fstatus);forget(dsvar).
+sendesystembaumundaktuellenknotenansohntask:holesystembaumundanfangsknoten;
+call(stellvertreter,anfangsknoten,systembaumds,fstatus);forget(systembaumds).
+gibkanalfrei:kanal:=channel(myself);break(quiet).belegekanalwieder:continue(
+kanal).holesystembaumundanfangsknoten:DATASPACE VAR systembaumds:=systembaum;
+INT CONST anfangsknoten:=nummer(k).END PROC umgebungswechsel;PROC call(TASK
+CONST zielmanager,INT CONST kanal,DATASPACE VAR ds,TASK VAR stellvertreter,
+INT VAR fstatus):call(zielmanager,kanal,ds,fstatus);IF fstatus=ackTHEN BOUND
+TASK VAR t:=ds;stellvertreter:=tFI ;forget(ds);break(quiet);END PROC call;
+END PACKET umgebungswechselmanager
+