XUTMTU ;SEA/RDS - TaskMan: ToolKit, Unschedule ;11/18/94 11:21
;;8.0;KERNEL;;Jul 10, 1995
;
UNSCHED ;Unschedule Task
N ZT,ZT1,ZT2,ZT3
L +^%ZTSK(XUTMT)
S ZT1=0 F ZT=0:0 S ZT1=$O(^%ZTSCH(ZT1)) Q:'ZT1 I $D(^(ZT1,XUTMT))#2 L +^%ZTSCH(ZT1,XUTMT) S ZT2=^(XUTMT) K ^(XUTMT) L -^%ZTSCH(ZT1,XUTMT) I ZT2]"" S:$D(^%ZTSK(XUTMT)) $P(^(XUTMT,.2),U)=ZT2
S ZT1="" F ZT=0:0 S ZT1=$O(^%ZTSCH("IO",ZT1)),ZT2="" Q:ZT1="" F ZT=0:0 S ZT2=$O(^%ZTSCH("IO",ZT1,ZT2)) Q:ZT2="" D DQIO:$D(^(ZT2,XUTMT))#2
S ZT1="" F ZT=0:0 S ZT1=$O(^%ZTSCH("JOB",ZT1)) Q:ZT1="" I $D(^(ZT1,XUTMT))#2 L +^%ZTSCH("JOB",ZT1,XUTMT) K ^(XUTMT) L -^%ZTSCH("JOB",ZT1,XUTMT)
S ZT1="" F ZT=0:0 S ZT1=$O(^%ZTSCH("LINK",ZT1)),ZT2="" Q:ZT1="" F ZT=0:0 S ZT2=$O(^%ZTSCH("LINK",ZT1,ZT2)) Q:ZT2="" I $D(^(ZT2,XUTMT))#2 L +^%ZTSCH("LINK",ZT1,ZT2,XUTMT) K ^(XUTMT) L -^%ZTSCH("LINK",ZT1,ZT2,XUTMT)
I $D(^%ZTSK(XUTMT)) S $P(^%ZTSK(XUTMT,.1),U,1,3)="F^"_$H_U_ZTNAME
L -^%ZTSK(XUTMT) S ZTSK=XUTMT K XUTMT
Q
;
DQIO ;Remove A Device Waiting List Entry
N %ZTIO,ZTDTH,ZTSK S %ZTIO=ZT1,ZTDTH=ZT2,ZTSK=XUTMT L +^%ZTSCH("IO") D DQ^%ZTM4 L -^%ZTSCH("IO") Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXUTMTU 1124 printed Nov 22, 2024@17:24:09 Page 2
XUTMTU ;SEA/RDS - TaskMan: ToolKit, Unschedule ;11/18/94 11:21
+1 ;;8.0;KERNEL;;Jul 10, 1995
+2 ;
UNSCHED ;Unschedule Task
+1 NEW ZT,ZT1,ZT2,ZT3
+2 LOCK +^%ZTSK(XUTMT)
+3 SET ZT1=0
FOR ZT=0:0
SET ZT1=$ORDER(^%ZTSCH(ZT1))
if 'ZT1
QUIT
IF $DATA(^(ZT1,XUTMT))#2
LOCK +^%ZTSCH(ZT1,XUTMT)
SET ZT2=^(XUTMT)
KILL ^(XUTMT)
LOCK -^%ZTSCH(ZT1,XUTMT)
IF ZT2]""
if $DATA(^%ZTSK(XUTMT))
SET $PIECE(^(XUTMT,.2),U)=ZT2
+4 SET ZT1=""
FOR ZT=0:0
SET ZT1=$ORDER(^%ZTSCH("IO",ZT1))
SET ZT2=""
if ZT1=""
QUIT
FOR ZT=0:0
SET ZT2=$ORDER(^%ZTSCH("IO",ZT1,ZT2))
if ZT2=""
QUIT
if $DATA(^(ZT2,XUTMT))#2
DO DQIO
+5 SET ZT1=""
FOR ZT=0:0
SET ZT1=$ORDER(^%ZTSCH("JOB",ZT1))
if ZT1=""
QUIT
IF $DATA(^(ZT1,XUTMT))#2
LOCK +^%ZTSCH("JOB",ZT1,XUTMT)
KILL ^(XUTMT)
LOCK -^%ZTSCH("JOB",ZT1,XUTMT)
+6 SET ZT1=""
FOR ZT=0:0
SET ZT1=$ORDER(^%ZTSCH("LINK",ZT1))
SET ZT2=""
if ZT1=""
QUIT
FOR ZT=0:0
SET ZT2=$ORDER(^%ZTSCH("LINK",ZT1,ZT2))
if ZT2=""
QUIT
IF $DATA(^(ZT2,XUTMT))#2
LOCK +^%ZTSCH("LINK",ZT1,ZT2,XUTMT)
KILL ^(XUTMT)
LOCK -^%ZTSCH("LINK",ZT1,ZT2,XUTMT)
+7 IF $DATA(^%ZTSK(XUTMT))
SET $PIECE(^%ZTSK(XUTMT,.1),U,1,3)="F^"_$HOROLOG_U_ZTNAME
+8 LOCK -^%ZTSK(XUTMT)
SET ZTSK=XUTMT
KILL XUTMT
+9 QUIT
+10 ;
DQIO ;Remove A Device Waiting List Entry
+1 NEW %ZTIO,ZTDTH,ZTSK
SET %ZTIO=ZT1
SET ZTDTH=ZT2
SET ZTSK=XUTMT
LOCK +^%ZTSCH("IO")
DO DQ^%ZTM4
LOCK -^%ZTSCH("IO")
QUIT
+2 ;