Merge lp:~jontai/openvista-gtm-integration/bug326193 into lp:openvista-gtm-integration

Proposed by Jon Tai
Status: Merged
Merged at revision: not available
Proposed branch: lp:~jontai/openvista-gtm-integration/bug326193
Merge into: lp:openvista-gtm-integration
Diff against target: None lines
To merge this branch: bzr merge lp:~jontai/openvista-gtm-integration/bug326193
Reviewer Review Type Date Requested Status
jeff.apple Approve
Review via email: mp+5992@code.launchpad.net
To post a comment you must log in.
Revision history for this message
jeff.apple (jeff-apple) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'mumps/MSCZJOB.m'
2--- mumps/MSCZJOB.m 1970-01-01 00:00:00 +0000
3+++ mumps/MSCZJOB.m 2009-04-28 18:34:54 +0000
4@@ -0,0 +1,96 @@
5+MSCZJOB ;GFT,JDS/MSC;28JAN2009
6+ ;;8.0;KERNEL;**MSC**
7+ W !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
8+ N MSC
9+DDS ;
10+ S DDSFILE=3.081,DR="[MSCZJOBEXAM]",DDSPARM="S"
11+ D ^DDS Q
12+ ;
13+UNLOCK(D0) ;FROM FIELD 2, PAGE 3: UNLOCK THE LOCK
14+ N X,R S R=$G(@MSC@(MSCJOBID,"L",D0)) I R'["^" Q ;CAN'T SEE IT
15+ S R=$P(R," ",2),X="L "_R D ^DIM Q:'$D(X)
16+ D UNLOCK^MSCZJOBU(R,MSCJOBID)
17+ Q
18+ ;
19+KILL(J) ;FROM FIELD
20+ D KILL^MSCZJOBU(J)
21+ Q
22+ ;
23+COMPMUL ;COMPUTED MULTIPLE FOR MSCZJOBEXAM BLOCK
24+ N X,D0,J
25+ S MSC="^TMP(""MSCZJOB"")" D POLL
26+ F D0=0:0 S D0=$O(MSCZJOB(D0)) Q:'D0 D
27+ .S MSCZJOB(D0)=MSCZJOB(D0)_U_$$DEV(D0)_U_$$USER(D0)_U_$$NSP(D0)_U_U_U_U_U_$$ROUTINE(D0)
28+ .S X=MSCZJOB(D0) X DICMX
29+ Q
30+JOB(D0) Q $P(MSCZJOB(D0),U) ;***
31+DEV(D0) Q $$FIND(D0,"I","$PRINCIPAL")
32+NSP(D0) N N D Q N
33+ .N L,P S N=$$FIND(D0,"I","$ZGBLDIR"),L=$L(N,"/") I L<2 Q
34+ .F L=L-1:-1:2 S P=$P(N,"/",L) I P'[".",P'["globals" Q
35+ .S P=1 I $P(N,"/")="" S P=2
36+ .S N=$P(N,"/",P,L)
37+USER(D0) Q $P($G(^VA(200,+$$FIND(D0,"V","DUZ"),0)),U)
38+ROUTINE(D0) Q $$FIND(D0,"V","%ZPOS")
39+ ;
40+FIND(D0,ARR,KEY) N I,J,X S X="",J=+MSCZJOB(D0)
41+ F I=0:0 S I=$O(@MSC@(J,ARR,I)) Q:'I I $P(^(I),KEY_"=")="" S X=$TR($P(^(I),"=",2),"""") Q
42+ Q X
43+ ;
44+COMPSTK ;COMPUTED MULTIPLE FOR MSCZJOBSTACK BLOCK
45+ S MSC="^TMP(""MSCZJOB"")" K @MSC@(MSCJOBID) D POLL1
46+ N D0,J S J=MSCJOBID
47+ F D0=1:1:$O(@MSC@(J,"S",""),-1) S X="" X DICMX
48+ Q
49+ ;
50+STACK(D0) N X S X=$G(@MSC@(MSCJOBID,"S",D0))
51+ Q X
52+ ;
53+COMPVARS ;COMPUTED MULTIPLE FOR MSCZJOBVARS BLOCK
54+ S MSC="^TMP(""MSCZJOB"")" K @MSC@(MSCJOBID) D POLL1
55+ N D0,J S J=MSCJOBID
56+ F D0=1:1:$O(@MSC@(J,"V",""),-1) S X="" X DICMX
57+ Q
58+ ;
59+COMPLKS ;COMPUTED MULTIPLE FOR MSCZJOBLOCKS BLOCK
60+ S MSC="^TMP(""MSCZJOB"")" D POLL1
61+ N D0
62+ F D0=1:1:$$LOCKS S X="" X DICMX
63+ Q
64+ ;
65+LOCKS() Q +$O(@MSC@(MSCJOBID,"L",""),-1)
66+ ;
67+POLL K MSCZJOB ;D HLP^DDSUTL(" POLLING JOBS.....")
68+ I $G(^%ZOSF("OS"))["GT.M" D
69+ .K @MSC
70+ .D INTRPT^MSCZJOBU("*") ;SETS UP ^TMP
71+ .N MSCA,I D PIDS^MSCZJOBU(.MSCA)
72+ .S MSCA="" F I=1:1 S MSCA=$O(MSCA(MSCA)) Q:'MSCA S MSCZJOB(I)=MSCA ;SETS UP LOCAL ARRAY
73+ .H 1 ;WAIT FOR POLLING
74+ D TEST
75+ Q
76+ ;
77+POLL1 Q:'$G(MSCJOBID)
78+ I $G(^%ZOSF("OS"))["GT.M" D
79+ .K @MSC@(MSCJOBID)
80+ .D INTRPT^MSCZJOBU(MSCJOBID) ;SETS UP ^TMP(MSCZJOB)
81+ .H 1 ;WAIT FOR POLLING
82+ D TEST
83+ Q
84+ ;
85+TEST Q
86+COMPLK ;COMPUTED MULTIPLE FOR MSCZLOCK BLOCK
87+ N X,D0,J
88+ S MSC="^TMP(""MSCZJOB"")" D POLL S D0=0
89+ F K=0:0 S K=$O(MSCZJOB(K)) Q:'K D
90+ .F J=0:0 S J=$O(^TMP("MSCZJOB",MSCZJOB(K),"L",J)) Q:'J S A=$TR(^(J),U,"~") D
91+ ..S D0=D0+1,MSCZLK(D0)=$P(A,"LOCK ",2,9)_U_$$USER(K)_U_$TR($$ROUTINE(K),U,"~")_"^^"_MSCZJOB(K)
92+ ..S X=MSCZLK(D0) X DICMX
93+ Q
94+LOCK ;
95+ S DDSFILE=3.081,DR="[MSCZLOCK]",DDSPARM="S"
96+ D ^DDS Q
97+UNL(D0) ;FROM FIELD 2, PAGE 3: UNLOCK THE LOCK
98+ N X,R S R=$P($G(MSCZLK(D0)),U),P=$P($G(MSCZLK(D0)),U,5) ;I R'["^" Q ;CAN'T SEE IT
99+ S R=$P(R,"~",2),R="^"_$S(R'["(":$P(R," "),1:$P(R,")")_")"),X="L "_R D ^DIM Q:'$D(X) ;GOOD SYNTAX?
100+ D UNLOCK^MSCZJOBU(R,P)
101
102=== added file 'mumps/MSCZJOBU.m'
103--- mumps/MSCZJOBU.m 1970-01-01 00:00:00 +0000
104+++ mumps/MSCZJOBU.m 2009-04-28 18:34:54 +0000
105@@ -0,0 +1,57 @@
106+MSCZJOBU ;RHL,JDS/MSC;26JUNE2007
107+ ;;8.0;KERNEL;**MSC**
108+ ;
109+ ; JOB EXAM UTILITIES FOR GT.M
110+ Q
111+PIDS(XARY) ; GET ARRAY OF ALL MUMPS PROCESS
112+ ; XARY PASSED BY REFERENCE
113+ ; RETURNS XARY(PID)=""
114+ ; NOTE: Unix PID=$J for all mumps processes.
115+ ;
116+ N %FILE
117+ S A="TEST"
118+ OPEN A:(COMM="ps --no-headers -o pid= -C mumps")::"PIPE" U A
119+ ;
120+ N %I S %I=$I
121+ N %J ; $JOB
122+ N %LINE
123+ N U S U="^"
124+ F U A R %LINE U %I Q:%LINE="" D
125+ . Q:$P(%LINE,U)="PID" ; header line
126+ . S %J=$P(%LINE,U)
127+ . F Q:$E(%J,1)'=" " S %J=$E(%J,2,999)
128+ . S XARY(%J)=""
129+ ;
130+ C A
131+ Q
132+ ;
133+INTRPT(PID) ; SEND mupip intrpt to each process.
134+ ; WHICH CAUSES THE $ZINTERRUPT CODE TO BE EXECUTED.
135+ ; PID PASSED BY VALUE
136+ ; PID CAN BE A SINGLE PID, I.E. $J
137+ ; PID CAN BE A "*" WHICH SENDS AN INTERRUPT TO ALL MUMPS PROCESSES
138+ ;
139+ Q:$G(PID)=""
140+ ;
141+ I PID="*" D Q ; ALL PIDS
142+ . N ARRAY
143+ . D PIDS(.ARRAY)
144+ . N %J S %J=""
145+ . F S %J=$O(ARRAY(%J)) Q:%J="" D
146+ . . S A="test1",c="mupip intrpt "_%J_" > /dev/null"
147+ . . OPEN A:(COMM="mupip intrpt "_%J)::"PIPE" U A C A
148+ ;
149+ ; JUST 1 PID
150+ Q:PID'?1N.N
151+ S A="test1"
152+ OPEN A:(COMM="mupip intrpt "_PID)::"PIPE" U A C A
153+ Q
154+ ;
155+KILL(PID) ; Send PID to mupip to kill process
156+ Q:PID'?1N.N
157+ ZSYSTEM "mupip stop "_PID_" > /dev/null"
158+ Q
159+ ;
160+UNLOCK(NODE,PROC) ; Use lke to remove lock on NODE.
161+ ZSYSTEM "lke clear -lock="""_NODE_""" -nointeractive -output=/dev/null"
162+ Q

Subscribers

People subscribed via source and target branches