ProcMonitor.st
changeset 771 5cd10b4845f3
parent 682 e51a6364c34f
child 775 f741dc4afe19
equal deleted inserted replaced
770:3da310ebef8d 771:5cd10b4845f3
    17 	classVariableNames:''
    17 	classVariableNames:''
    18 	poolDictionaries:''
    18 	poolDictionaries:''
    19 	category:'Interface-Tools'
    19 	category:'Interface-Tools'
    20 !
    20 !
    21 
    21 
    22 !ProcessMonitor  class methodsFor:'documentation'!
    22 !ProcessMonitor class methodsFor:'documentation'!
    23 
    23 
    24 copyright
    24 copyright
    25 "
    25 "
    26  COPYRIGHT (c) 1993 by Claus Gittinger
    26  COPYRIGHT (c) 1993 by Claus Gittinger
    27 	      All Rights Reserved
    27 	      All Rights Reserved
    62 	usedStack  - the current stack use
    62 	usedStack  - the current stack use
    63 	totalStack - the stack currently allocated (i.e. the maximum ever needed)
    63 	totalStack - the stack currently allocated (i.e. the maximum ever needed)
    64 "
    64 "
    65 ! !
    65 ! !
    66 
    66 
    67 !ProcessMonitor  class methodsFor:'defaults'!
    67 !ProcessMonitor class methodsFor:'defaults'!
    68 
    68 
    69 defaultIcon
    69 defaultIcon
    70     |i|
    70     |i|
    71 
    71 
    72     i := Image fromFile:'ProcMon.xbm'.
    72     i := Image fromFile:'ProcMon.xbm'.
    76 
    76 
    77 defaultLabel
    77 defaultLabel
    78     ^ 'Process Monitor'
    78     ^ 'Process Monitor'
    79 ! !
    79 ! !
    80 
    80 
    81 !ProcessMonitor  class methodsFor:'startup'!
    81 !ProcessMonitor class methodsFor:'startup'!
    82 
    82 
    83 open
    83 open
    84     |top monitor|
    84     |top monitor|
    85 
    85 
    86     top := StandardSystemView new.
    86     top := StandardSystemView new.
   435     updateBlock notNil ifTrue:[
   435     updateBlock notNil ifTrue:[
   436         Processor addTimedBlock:updateBlock afterSeconds:updateDelay.
   436         Processor addTimedBlock:updateBlock afterSeconds:updateDelay.
   437         Processor addTimedBlock:listUpdateBlock afterSeconds:listUpdateDelay.
   437         Processor addTimedBlock:listUpdateBlock afterSeconds:listUpdateDelay.
   438     ] ifFalse:[
   438     ] ifFalse:[
   439         updateProcess := [
   439         updateProcess := [
   440             Process terminateSignal handle:[:ex |
   440             [
   441                 updateProcess := nil
       
   442             ] do:[
       
   443                 |id cnt|
   441                 |id cnt|
   444 
   442 
   445                 "
   443                 "
   446                  every 20ms, we look which process runs;
   444                  every 20ms, we look which process runs;
   447                  every half second, the status is updated.
   445                  every half second, the status is updated.
   461                         self updateStatus.
   459                         self updateStatus.
   462                     ].
   460                     ].
   463                     Delay waitForSeconds:0.5.
   461                     Delay waitForSeconds:0.5.
   464                     self updateList.
   462                     self updateList.
   465                 ]
   463                 ]
       
   464             ] valueOnUnwindDo:[
       
   465                 updateProcess := nil
   466             ]
   466             ]
   467         ]  forkAt:(Processor userSchedulingPriority + 1).
   467         ]  forkAt:(Processor userSchedulingPriority + 1).
   468         updateProcess name:'monitor [' , 
   468         updateProcess name:'monitor [' , 
   469                            Processor activeProcess id printString ,
   469                            Processor activeProcess id printString ,
   470                            '] update'.
   470                            '] update'.
   651 
   651 
   652 preferredExtent
   652 preferredExtent
   653     ^ (font widthOf:self titleLine) + 40 @ 100
   653     ^ (font widthOf:self titleLine) + 40 @ 100
   654 ! !
   654 ! !
   655 
   655 
   656 !ProcessMonitor  class methodsFor:'documentation'!
   656 !ProcessMonitor class methodsFor:'documentation'!
   657 
   657 
   658 version
   658 version
   659 ^ '$Header: /cvs/stx/stx/libtool/Attic/ProcMonitor.st,v 1.40 1996-07-24 15:23:54 cg Exp $'! !
   659 ^ '$Header: /cvs/stx/stx/libtool/Attic/ProcMonitor.st,v 1.41 1996-10-15 23:35:39 cg Exp $'! !