Télécharger ooosuq.eso

Retour à la liste

Numérotation des lignes :

ooosuq
  1. C OOOSUQ SOURCE PV090527 26/04/24 08:23:22 12524
  2. SUBROUTINE OOOSUQ(nth)
  3. C--------------------------------------------------------------------
  4. C
  5. C EFFECTUER LA SUPPRESSION DES SEGMENTS EN QUEUE DE SUPPRESSION
  6. C
  7. C--------------------------------------------------------------------
  8. C
  9. %INC IOOADR
  10. %INC IOOADZ
  11. %INC IOODES
  12. %INC IOOSGM
  13. %INC IOOWCOM
  14. %INC IOOSAF
  15.  
  16. POINTEUR PSEG.PSEG
  17. C
  18. IF (ISUPQ(nth).eq.0) return
  19. KOD=0
  20. do 100 i=1,isupq(nth)
  21. pseg=supq(nth,i)
  22. if (pseg.eq.0)goto 100
  23. if (pseg.lt.0)goto 902
  24.  
  25. CALL OOOVPN (PSEG)
  26. C deja fait dans OOOVPN
  27. C call ooove2(lret,pseg)
  28. C if(lret .eq. 3)goto 903
  29. C if(lret .eq. 1)goto 902
  30.  
  31. if (thread) then
  32. C en mode force on n'attends pas car cela empecherait le menage de marcher
  33. if (.not.ooofor.or.nth.ne.0) then
  34. C il faut attendre que le segment soit libre
  35. 10 if ((ibits(mdrw(pseg),0,18).ne.0.and.ibits(mdrw(pseg),0,18)
  36. > .ne.nth+1).or.
  37. >(nth.lt.64.and.mdro1(pseg).ne.0.and.mdro1(pseg).ne.(ibset(0,nth)))
  38. >.or.
  39. >(nth.ge.64.and.mdro2(pseg).ne.0.and.mdro2(pseg).ne.
  40. > (ibset(0,nth-64))))
  41. > then
  42. C on doit attendre.
  43. C si necessaire on cree une condition
  44. if (mdco(pseg).eq.0) then
  45. call ooocon(mdco(pseg))
  46. endif
  47. call oooddl(pseg,harg)
  48. lnsf(nth)=0
  49. call ooowait(mdco(pseg))
  50. lnsf(nth)=1
  51. call oooudl
  52. goto 10
  53. endif
  54. endif
  55. endif
  56.  
  57. CALL OOOSUP (LRET,PSEG,KOD)
  58. IF(LRET.EQ.1) GO TO 901
  59. 100 continue
  60. isupq(nth)=0
  61. lsupq(nth)=0
  62. RETURN
  63.  
  64. C-----------------------------------------------------------------------
  65. C MESSAGES D'ERREUR
  66. C-----------------------------------------------------------------------
  67. 901 CALL OOOERR (0,0,'PAS ASSEZ DE PLACE EN MEMOIRE')
  68. STOP 16
  69. 902 CALL OOOERR (PSEG,-1,'POINTEUR ARGUMENT INVALIDE')
  70. STOP 16
  71. END
  72.  
  73.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales