ProcessMonitor.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 15950 23be8cf85415
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     1
"
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     3
	      All Rights Reserved
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     4
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     5
 This software is furnished under a license and may be used
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     6
 only in accordance with the terms of that license and with the
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     8
 be provided or otherwise made available to, or used by, any
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
     9
 other person.  No title to or ownership of the software is
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    10
 hereby transferred.
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    11
"
2768
539b96324cdf use #abort
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
    12
"{ Package: 'stx:libtool' }"
539b96324cdf use #abort
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
    13
15950
23be8cf85415 Bugfix in merge tool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12650
diff changeset
    14
"{ NameSpace: Smalltalk }"
23be8cf85415 Bugfix in merge tool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12650
diff changeset
    15
982
ed5de0e2fb24 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 979
diff changeset
    16
SystemStatusMonitor subclass:#ProcessMonitor
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    17
	instanceVariableNames:'processes hideDead runColor suspendedColor waitColor cpuUsages
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    18
		showDetail'
315
8a86faf847d1 create a new updateProcess when restarted
Claus Gittinger <cg@exept.de>
parents: 314
diff changeset
    19
	classVariableNames:''
8a86faf847d1 create a new updateProcess when restarted
Claus Gittinger <cg@exept.de>
parents: 314
diff changeset
    20
	poolDictionaries:''
1053
9b1b15ef1e34 category change
Claus Gittinger <cg@exept.de>
parents: 1052
diff changeset
    21
	category:'Monitors-ST/X'
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
    22
!
4cde336c0794 Initial revision
claus
parents:
diff changeset
    23
771
5cd10b4845f3 oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 682
diff changeset
    24
!ProcessMonitor class methodsFor:'documentation'!
52
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    25
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    26
copyright
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    27
"
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    28
 COPYRIGHT (c) 1993 by Claus Gittinger
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    29
	      All Rights Reserved
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    30
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    31
 This software is furnished under a license and may be used
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    32
 only in accordance with the terms of that license and with the
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    34
 be provided or otherwise made available to, or used by, any
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    35
 other person.  No title to or ownership of the software is
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    36
 hereby transferred.
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    37
"
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    38
!
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    39
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    40
documentation
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    41
"
7857
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    42
    >>> This class has been obsoleted by ProcessMonitorV2 <<<
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    43
52
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    44
    This view shows smalltalks (light-weight) processes, and also offers
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    45
    a popup menu for various useful operations on them.
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    46
    Especially 'debug' is useful, to see what a process is currently
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    47
    doing.
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
    48
52
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    49
    The information shown is:
7857
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    50
        id         - the numeric id of the process
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    51
        name       - the name (if any) of the process
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    52
                     (the name has no semantic meaning; it exists for the processMonitor only)
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    53
        state      - what is it doing;
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    54
                        wait      - waiting on a semaphore
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    55
                        eventWait - waiting on a view-event semaphore
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    56
                        ioWait    - waiting on an io-semaphore
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    57
                        timeWait  - waiting for a time-semaphore
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    58
                        run       - run, but currently not scheduled
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    59
                        active    - really running (this info is useless, since at
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    60
                                    update time, its always the update process which is
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    61
                                    running)
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    62
                        suspended - suspended; not waiting on a semaphore
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    63
                        light     - not yet started (i.e. has no stack yet)
52
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    64
        
7857
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    65
        prio       - the processes priority (1..30)
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    66
        usedStack  - the current stack use
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    67
        totalStack - the stack currently allocated (i.e. the maximum ever needed)
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    68
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    69
    [see also:]
7857
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    70
        Process ProcessorScheduler
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    71
        WindowGroup
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    72
        SemaphoreMonitor
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    73
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    74
    [author:]
7857
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    75
        Claus Gittinger
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    76
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    77
    [start with:]
7857
5d26e5e6352c comment
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
    78
        ProcessMonitor open
52
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    79
"
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    80
! !
7b48409ae088 *** empty log message ***
claus
parents: 49
diff changeset
    81
771
5cd10b4845f3 oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 682
diff changeset
    82
!ProcessMonitor class methodsFor:'defaults'!
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
    83
56
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
    84
defaultIcon
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
    85
    |i|
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
    86
93
claus
parents: 92
diff changeset
    87
    i := Image fromFile:'ProcMon.xbm'.
56
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
    88
    i notNil ifTrue:[^ i].
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    89
    ^ super defaultIcon
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    90
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
    91
    "Modified: 23.1.1997 / 02:52:31 / cg"
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
    92
!
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
    93
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
    94
defaultLabel
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
    95
    ^ 'Process Monitor'
1300
fd0f774f6090 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
    96
!
fd0f774f6090 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
    97
fd0f774f6090 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
    98
nameLengthInList
fd0f774f6090 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
    99
    ^ 30
fd0f774f6090 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
   100
fd0f774f6090 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
   101
    "Created: 21.8.1997 / 15:42:05 / cg"
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   102
! !
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   103
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   104
!ProcessMonitor methodsFor:'drawing'!
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   105
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   106
titleLine
109
claus
parents: 107
diff changeset
   107
    showDetail ifTrue:[
3000
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   108
        Processor supportDynamicPriorities ifTrue:[
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   109
            ^ 
4253
fb44beaa9aa1 menu labels
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   110
'Id     Group  Name                            State     Prio       UsedStack    TotalStack  Current-Segment      Switch  Where'.
3000
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   111
        ].
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   112
        ^ 
4253
fb44beaa9aa1 menu labels
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   113
'Id     Group  Name                            State    Prio UsedStack    TotalStack  Current-Segment      Switch  Where'.
109
claus
parents: 107
diff changeset
   114
    ].
3000
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   115
    ^ 
4253
fb44beaa9aa1 menu labels
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   116
'Id     Group  Name                            State    Prio Where                                           '.
656
3a625e4aa73f Use a Stream to construct lines.
Stefan Vogel <sv@exept.de>
parents: 619
diff changeset
   117
1504
ca559ae2710a allow for 5-digit ids
Claus Gittinger <cg@exept.de>
parents: 1349
diff changeset
   118
    "Modified: / 3.7.1996 / 13:57:38 / stefan"
1792
0c15080a584a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1791
diff changeset
   119
    "Modified: / 3.8.1998 / 23:20:24 / cg"
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   120
!
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   121
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   122
updateList
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   123
    "update list of processes"
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   124
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   125
    |newList|
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   126
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   127
    shown ifTrue:[
2084
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   128
        newList := self getProcessList.
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   129
2084
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   130
        "sort by id - take care of nil ids of dead processes"
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   131
        newList sort:[:p1 :p2 |
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   132
                         |id1 id2|
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   133
2084
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   134
                         (p1 isNil or:[(id1 := p1 id) isNil])
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   135
                             ifTrue:[true]
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   136
                             ifFalse:[
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   137
                                 (p2 isNil or:[(id2 := p2 id) isNil])
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   138
                                     ifTrue:[false]
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   139
                                     ifFalse:[id1 < id2]
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   140
                         ]
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   141
                     ].
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   142
        newList ~= processes ifTrue:[
2487
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   143
            self updateStatus:newList
2084
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   144
        ].
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   145
    ].
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   146
    updateBlock notNil ifTrue:[
2084
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   147
        Processor removeTimedBlock:listUpdateBlock.
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   148
        Processor addTimedBlock:listUpdateBlock afterSeconds:listUpdateDelay
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   149
    ].
656
3a625e4aa73f Use a Stream to construct lines.
Stefan Vogel <sv@exept.de>
parents: 619
diff changeset
   150
2487
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   151
    "Modified: / 3.7.1996 / 13:37:29 / stefan"
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   152
    "Modified: / 14.12.1999 / 20:50:14 / cg"
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   153
!
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   154
2487
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   155
updateStatus:newProcessList
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   156
    "update status display of processes"
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   157
1009
389ee01be263 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1007
diff changeset
   158
    |oldList list line dIndex interrupted contextCount 
1103
c70ece0e331a keep selection when list changes
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   159
     aProcess nm st n found running sel space oldSelection
1301
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   160
     newSelection numHeaderLines nameLength index
5783
5ce97d85326d Rename AbsoluteTime to Timestamp
Stefan Vogel <sv@exept.de>
parents: 5308
diff changeset
   161
     con c sender id gId r skipping startTime endTime deltaT|
3023
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   162
5783
5ce97d85326d Rename AbsoluteTime to Timestamp
Stefan Vogel <sv@exept.de>
parents: 5308
diff changeset
   163
    startTime := Timestamp now.
656
3a625e4aa73f Use a Stream to construct lines.
Stefan Vogel <sv@exept.de>
parents: 619
diff changeset
   164
1103
c70ece0e331a keep selection when list changes
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   165
    numHeaderLines := 2.
656
3a625e4aa73f Use a Stream to construct lines.
Stefan Vogel <sv@exept.de>
parents: 619
diff changeset
   166
    space := Character space.
1300
fd0f774f6090 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
   167
    nameLength := self class nameLengthInList.
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   168
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   169
    shown ifTrue:[
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   170
        oldList := listView list.
2487
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   171
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   172
        oldSelection := listView selection.
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   173
        oldSelection notNil ifTrue:[
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   174
            oldSelection := oldSelection collect:[:idx | |pI|
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   175
                                            pI := idx-numHeaderLines.
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   176
                                            (pI > processes size or:[pI < 1]) ifTrue:[
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   177
                                                nil
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   178
                                            ] ifFalse:[
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   179
                                                processes at:pI
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   180
                                            ]
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   181
                                         ].
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   182
            newSelection := OrderedCollection new.
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   183
        ].
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   184
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   185
        newProcessList notNil ifTrue:[
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   186
            processes := WeakArray withAll:newProcessList.
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   187
        ].
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   188
        processes notNil ifTrue:[
1103
c70ece0e331a keep selection when list changes
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   189
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   190
            list := OrderedCollection new:(processes size + numHeaderLines).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   191
            list add:self titleLine.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   192
            list add:(String new:self titleLine size withAll:$-).
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   193
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   194
            interrupted := Processor interruptedProcess.
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   195
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   196
            dIndex := 1.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   197
            index := 1.
1301
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   198
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   199
            "/ use while-loop;
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   200
            "/ processList may change size ....
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   201
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   202
            [index <= processes size] whileTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   203
                aProcess := processes at:index.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   204
                index := index + 1.
1301
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   205
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   206
                (aProcess notNil 
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   207
                and:[aProcess ~~ 0]) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   208
                    ((id := aProcess id) notNil or:[hideDead not]) ifTrue:[
5308
bd378231dd21 String new -> uninitializedNew: / basicNew:
Claus Gittinger <cg@exept.de>
parents: 4253
diff changeset
   209
                        line := WriteStream on:(String uninitializedNew:200).
656
3a625e4aa73f Use a Stream to construct lines.
Stefan Vogel <sv@exept.de>
parents: 619
diff changeset
   210
3000
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   211
                        id printOn:line paddedTo:7.
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   212
                        gId := aProcess processGroupId.
2473
8108513bbfd1 avoid flicker
ca
parents: 2176
diff changeset
   213
                        ((gId == id) or:[gId isNil]) ifTrue:[
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   214
                            "/ a group leader
3000
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   215
                            '-      ' printOn:line.
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   216
                        ] ifFalse:[
3000
e794a357d7cb 7 cols for pids
Claus Gittinger <cg@exept.de>
parents: 2981
diff changeset
   217
                            gId printOn:line paddedTo:7.
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   218
                        ].
663
befe6a1d886f show process group & added menu item to terminate a complete group
Claus Gittinger <cg@exept.de>
parents: 656
diff changeset
   219
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   220
                        (nm := aProcess name) isNil ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   221
                            nm := nm printStringPaddedTo:(nameLength-1).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   222
                            nm size >= nameLength ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   223
                                nm := (nm contractTo:(nameLength-1)).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   224
                            ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   225
                            line nextPutAll:nm; nextPut:space.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   226
                        ] ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   227
                            line next:(nameLength) put:space.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   228
                        ].
680
c17630142bab *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 663
diff changeset
   229
"/                        n := cpuUsages at:(id) ifAbsent:[0].
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   230
"/                        n ~~ 0 ifTrue:[
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   231
"/                            line := line , ((n * 4) printStringLeftPaddedTo:3)
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   232
"/                        ] ifFalse:[
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   233
"/                            line := line , '   '
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   234
"/                        ].
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   235
                        st := aProcess state.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   236
                        (st == #run
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   237
                         and:[aProcess == interrupted]) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   238
                            c := ' *'.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   239
                            running := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   240
                        ] ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   241
                            [
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   242
                                (Processor scheduledProcesses includes:aProcess) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   243
                                    c := ' +'
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   244
                                ] ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   245
                                    c := '  '.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   246
                                ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   247
                            ] valueUninterruptably.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   248
                            running := false.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   249
                        ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   250
                        line nextPutAll:c; nextPutAll:(st printStringPaddedTo:9).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   251
                        line nextPutAll:(aProcess priority printStringLeftPaddedTo:3).
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   252
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   253
                        (showDetail 
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   254
                        and:[Processor supportDynamicPriorities]) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   255
                            (r := aProcess priorityRange) isNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   256
                                line nextPutAll:'       '.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   257
                            ] ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   258
                                line nextPutAll:((
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   259
                                    ' ['  
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   260
                                    , (r start printString)
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   261
                                    , '..'
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   262
                                    , (r stop printString)
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   263
                                    , ']') paddedTo:7).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   264
                            ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   265
                        ].
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   266
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   267
                        con := aProcess suspendedContext.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   268
                        con isNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   269
                            aProcess == Processor activeProcess ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   270
                                con := thisContext
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   271
                            ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   272
                        ].
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   273
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   274
                        showDetail ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   275
                            line nextPutAll:(aProcess usedStackSize printStringLeftPaddedTo:11).
1791
023931383895 show dynamicPrio-ranges
Claus Gittinger <cg@exept.de>
parents: 1620
diff changeset
   276
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   277
                            id == 0 ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   278
                                line nextPutAll:('unlimited' leftPaddedTo:14).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   279
                            ] ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   280
                                n := aProcess numberOfStackSegments.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   281
                                line nextPutAll:(aProcess totalStackSize printStringLeftPaddedTo:10).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   282
                                line nextPutAll:(('(' , n printString , ')') paddedTo:4).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   283
                            ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   284
                            con notNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   285
                                line nextPutAll:'  '.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   286
                                line nextPutAll:(((ObjectMemory addressOf:con) printStringRadix:16) leftPaddedTo:8 with:$0).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   287
                                line nextPutAll:' .. '.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   288
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   289
                                contextCount := 1.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   290
                                c := con.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   291
                                [(sender := c sender) notNil] whileTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   292
                                    c := sender.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   293
                                    contextCount := contextCount + 1.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   294
                                ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   295
                                line nextPutAll:(((ObjectMemory addressOf:c) printStringRadix:16) leftPaddedTo:8 with:$0).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   296
                            ] ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   297
                                line next:20 put:space.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   298
                            ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   299
                            line nextPut:space.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   300
                            line nextPutAll:(aProcess numberOfStackBoundaryHits printStringLeftPaddedTo:6).
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   301
                        ].
1103
c70ece0e331a keep selection when list changes
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   302
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   303
                        con notNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   304
                            c := con.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   305
                            found := false.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   306
                            running ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   307
                                "/ search for a semaphore-wait in the top 10 contexts
1009
389ee01be263 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1007
diff changeset
   308
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   309
                                1 to:10 do:[:n |
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   310
                                    found ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   311
                                        c notNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   312
                                            (c receiver class == Semaphore) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   313
                                                c selector == #wait ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   314
                                                    found := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   315
                                                ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   316
                                            ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   317
                                            c := c sender.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   318
                                        ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   319
                                    ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   320
                                ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   321
                            ].    
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   322
                            found ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   323
                                "/ search for a non-processor, non-process
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   324
                                "/ receiver in the top 10 contexts
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   325
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   326
                                c := con.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   327
                                1 to:10 do:[:n |
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   328
                                    |r|
322
e3ccd5e431df fixed context display (dont search for suspending context in running processes)
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   329
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   330
                                    found ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   331
                                        c notNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   332
                                            ((r := c receiver) ~~ Processor 
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   333
                                             and:[r class ~~ Process]) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   334
                                                found := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   335
                                            ] ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   336
                                                c := c sender.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   337
                                            ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   338
                                        ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   339
                                    ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   340
                                ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   341
                            ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   342
                            found ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   343
                                c := con
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   344
                            ].
413
715a6a18f825 better display of running processes context
Claus Gittinger <cg@exept.de>
parents: 409
diff changeset
   345
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   346
                            "/ skip, until an interesting context is
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   347
                            "/ found.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   348
                            "/ this skips intermediate contexts, which lead
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   349
                            "/ to the sema-wait (for example, unwind blocks,
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   350
                            "/ delay-stuff etc.)
428
1c7406f57591 skip Process contexts in display
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   351
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   352
                            skipping := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   353
                            [skipping] whileTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   354
                                skipping := false.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   355
                                (c notNil
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   356
                                and:[c receiver == Delay
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   357
                                     or:[c receiver class == Delay]]) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   358
                                    c := c sender.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   359
                                    skipping := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   360
                                ].
322
e3ccd5e431df fixed context display (dont search for suspending context in running processes)
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   361
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   362
                                [c notNil
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   363
                                and:[c receiver isBlock 
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   364
                                and:[c selector startsWith:'value']]] whileTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   365
                                    c := c sender.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   366
                                    skipping := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   367
                                ].
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   368
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   369
                                [c notNil
3640
1265390b64e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3379
diff changeset
   370
                                and:[c receiver isBlock 
1265390b64e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3379
diff changeset
   371
                                and:[c selector = 'ensure:']]] whileTrue:[
1265390b64e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3379
diff changeset
   372
                                    c := c sender.
1265390b64e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3379
diff changeset
   373
                                    skipping := true.
1265390b64e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3379
diff changeset
   374
                                ].
1265390b64e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3379
diff changeset
   375
1265390b64e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3379
diff changeset
   376
                                [c notNil
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   377
                                and:[c receiver == OperatingSystem 
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   378
                                and:[c selector == #unblockInterrupts]]] whileTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   379
                                    c := c sender.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   380
                                    skipping := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   381
                                ].
1807
b98ad1474686 skip uninterresting contexts in the where list;
Claus Gittinger <cg@exept.de>
parents: 1792
diff changeset
   382
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   383
                                [c notNil and:[c isBlockContext]] whileTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   384
                                    c := c home.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   385
                                    skipping := true.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   386
                                ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   387
                            ].
1807
b98ad1474686 skip uninterresting contexts in the where list;
Claus Gittinger <cg@exept.de>
parents: 1792
diff changeset
   388
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   389
                            c notNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   390
                                sel := c selector.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   391
                                sel isNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   392
                                    sel := '* unknown *'
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   393
                                ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   394
                                line nextPutAll:'  '.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   395
                                line nextPutAll:c receiver class name.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   396
                                line nextPutAll:'>>'; nextPutAll:sel.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   397
                            ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   398
                        ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   399
                        list add:line contents.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   400
                        processes at:dIndex put:aProcess.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   401
                        (oldSelection notNil and:[oldSelection includesIdentical:aProcess]) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   402
                            newSelection add:dIndex+numHeaderLines.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   403
                        ].
1807
b98ad1474686 skip uninterresting contexts in the where list;
Claus Gittinger <cg@exept.de>
parents: 1792
diff changeset
   404
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   405
                        dIndex := dIndex + 1
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   406
                    ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   407
                ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   408
            ].
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   409
            dIndex to:processes size do:[:index |
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   410
                processes at:index put:nil
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   411
            ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   412
        ].
1103
c70ece0e331a keep selection when list changes
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   413
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   414
        "avoid flicker"
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   415
        (oldList notNil and:[oldList size == list size]) ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   416
            list keysAndValuesDo:[:idx :entry |
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   417
                (oldList at:idx) ~= entry ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   418
                    listView at:idx put:entry
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   419
                ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   420
            ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   421
        ] ifFalse:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   422
            listView setList:list.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   423
            "the first two entries cannot be selected"
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   424
            listView attributeAt:1 put:#disabled.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   425
            listView attributeAt:2 put:#disabled.
1103
c70ece0e331a keep selection when list changes
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
   426
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   427
            oldSelection notNil ifTrue:[
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   428
                listView selection:newSelection.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   429
            ]
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   430
        ].
2473
8108513bbfd1 avoid flicker
ca
parents: 2176
diff changeset
   431
        "/ cg: must flush here - drawing is done by a background process;
8108513bbfd1 avoid flicker
ca
parents: 2176
diff changeset
   432
        "/ without the flush, the output may look ugly (delayed)
8108513bbfd1 avoid flicker
ca
parents: 2176
diff changeset
   433
        listView flush
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   434
    ].
3023
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   435
5783
5ce97d85326d Rename AbsoluteTime to Timestamp
Stefan Vogel <sv@exept.de>
parents: 5308
diff changeset
   436
    endTime := Timestamp now.
3023
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   437
    deltaT := (endTime millisecondDeltaFrom:startTime) / 1000.0.
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   438
    "/ Transcript show:deltaT; show:' ' ; showCR:(updateDelay / 10.0).
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   439
    deltaT > (updateDelay / 5) ifTrue:[
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   440
        "/ the update took longer than 20% - make delay longer, to reduce cpu load.
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   441
        updateDelay := updateDelay * 2.
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   442
        "/ Transcript show:'+++ '; showCR:updateDelay.
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   443
    ] ifFalse:[
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   444
        updateDelay > 0.5 ifTrue:[
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   445
            deltaT < (updateDelay / 20) ifTrue:[
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   446
                "/ the update took less than 5% - make delay smaller for better animation.
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   447
                updateDelay := (updateDelay / 2) max:0.5.
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   448
                "/ Transcript show:'--- ';showCR:updateDelay.
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   449
            ].
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   450
        ].
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   451
    ].
abe1daf204c3 reduce cpu load
Claus Gittinger <cg@exept.de>
parents: 3000
diff changeset
   452
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   453
    updateBlock notNil ifTrue:[
2176
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   454
        Processor removeTimedBlock:updateBlock.
e082c898f678 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
   455
        Processor addTimedBlock:updateBlock afterSeconds:updateDelay
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   456
    ]
322
e3ccd5e431df fixed context display (dont search for suspending context in running processes)
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   457
1504
ca559ae2710a allow for 5-digit ids
Claus Gittinger <cg@exept.de>
parents: 1349
diff changeset
   458
    "Modified: / 3.7.1996 / 13:56:01 / stefan"
2487
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   459
    "Created: / 14.12.1999 / 20:47:12 / cg"
4ac80975b91d avoid loosing the selection when the list is updated
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   460
    "Modified: / 14.12.1999 / 20:50:59 / cg"
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   461
! !
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   462
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
   463
!ProcessMonitor methodsFor:'initialization'!
4cde336c0794 Initial revision
claus
parents:
diff changeset
   464
4cde336c0794 Initial revision
claus
parents:
diff changeset
   465
initialize
4cde336c0794 Initial revision
claus
parents:
diff changeset
   466
    super initialize.
4cde336c0794 Initial revision
claus
parents:
diff changeset
   467
45
950b84ba89e6 *** empty log message ***
claus
parents: 19
diff changeset
   468
    hideDead := true.
109
claus
parents: 107
diff changeset
   469
    showDetail := Smalltalk at:#SystemDebugging ifAbsent:false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 19
diff changeset
   470
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
   471
    device hasColors ifTrue:[
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   472
	runColor := Color green.
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   473
	suspendedColor := Color yellow.
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   474
	waitColor := Color red.
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
   475
    ] ifFalse:[
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   476
	runColor := suspendedColor := waitColor := Color black
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   477
    ].
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
   478
45
950b84ba89e6 *** empty log message ***
claus
parents: 19
diff changeset
   479
    "
950b84ba89e6 *** empty log message ***
claus
parents: 19
diff changeset
   480
     ProcessMonitor open
950b84ba89e6 *** empty log message ***
claus
parents: 19
diff changeset
   481
    "
315
8a86faf847d1 create a new updateProcess when restarted
Claus Gittinger <cg@exept.de>
parents: 314
diff changeset
   482
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   483
    "Modified: 23.1.1997 / 02:51:38 / cg"
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   484
!
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   485
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   486
realize
3655
55fddc8c32df on: -> onDevice:
Claus Gittinger <cg@exept.de>
parents: 3640
diff changeset
   487
    waitColor := waitColor onDevice:device.
55fddc8c32df on: -> onDevice:
Claus Gittinger <cg@exept.de>
parents: 3640
diff changeset
   488
    runColor := runColor onDevice:device.
55fddc8c32df on: -> onDevice:
Claus Gittinger <cg@exept.de>
parents: 3640
diff changeset
   489
    suspendedColor := suspendedColor onDevice:device.
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   490
    super realize.
56
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
   491
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   492
    "Modified: 23.1.1997 / 02:30:37 / cg"
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
   493
! !
4cde336c0794 Initial revision
claus
parents:
diff changeset
   494
4cde336c0794 Initial revision
claus
parents:
diff changeset
   495
!ProcessMonitor methodsFor:'menu actions'!
4cde336c0794 Initial revision
claus
parents:
diff changeset
   496
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   497
abortProcess
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   498
    "abort (raise AbortSignal in) the selected process"
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   499
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   500
    self selectedProcessesDo:[:p |
2768
539b96324cdf use #abort
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
   501
        p abort
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   502
    ]
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   503
!
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   504
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   505
debugProcess
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   506
    "open a debugger on the selected process"
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   507
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   508
    self selectedProcessesDo:[:p |
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   509
       Debugger openOn:p
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   510
    ]
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   511
!
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   512
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   513
debugProcessWhenResumed
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   514
    self selectedProcessesDo:[:p |
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   515
       p onResumeDo:[:con | Debugger enter:con]
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   516
    ]
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   517
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   518
    "Created: / 14.10.1998 / 15:50:07 / cg"
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   519
    "Modified: / 14.10.1998 / 16:06:08 / cg"
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   520
!
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   521
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   522
debugWhenResumed
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   523
    self selectedProcessesDo:[:p |
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   524
       p addInterruptAction:[Debugger enter]
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   525
    ]
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   526
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   527
    "Created: / 14.10.1998 / 15:48:04 / cg"
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   528
    "Modified: / 14.10.1998 / 15:48:40 / cg"
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   529
!
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   530
1301
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   531
hardTerminateProcess
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   532
    "hard terminate the selected process"
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   533
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   534
    self selectedProcessesSend:#terminateNoSignal
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   535
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   536
    "Created: 22.8.1997 / 02:06:51 / cg"
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   537
!
6c2fd40d502f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   538
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   539
hideDead:aBoolean
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   540
    "turn on/off hiding of dead (already terminated) processes"
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   541
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   542
    hideDead := aBoolean
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   543
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   544
    "Modified: 23.1.1997 / 02:34:01 / cg"
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   545
!
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   546
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   547
inspectSelection
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   548
    "open an inspector on the selected process"
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   549
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   550
    self selectedProcessesSend:#inspect
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   551
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   552
    "Created: 23.1.1997 / 02:27:33 / cg"
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   553
!
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   554
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   555
lowerPrio
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   556
    "lower the selected processes priority"
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   557
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   558
    self selectedProcessesDo:[:p |
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   559
       p priority:(p priority - 1)
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   560
    ]
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   561
!
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   562
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   563
raisePrio
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   564
    "raise the selected processes priority"
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   565
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   566
    self selectedProcessesDo:[:p |
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   567
       p priority:(p priority + 1)
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   568
    ]
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   569
!
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   570
817
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   571
restartProcess
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   572
    "abort (raise AbortSignal in) the selected process"
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   573
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   574
    self selectedProcessesDo:[:p |
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   575
	p restart.
817
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   576
    ]
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   577
!
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   578
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   579
resumeProcess
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   580
    "resume the selected process (i.e. let it run) "
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   581
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   582
    self selectedProcessesSend:#resume
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   583
!
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   584
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   585
statusMenu
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   586
    "return a popUpMenu"
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   587
1620
51341ec8360b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1505
diff changeset
   588
    <resource: #programMenu>
51341ec8360b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1505
diff changeset
   589
4253
fb44beaa9aa1 menu labels
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   590
    |items m allRestartable|
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   591
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   592
    device ctrlDown ifTrue:[
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   593
        items := #( 
3233
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   594
                        ('\c Detail' toggleDetail)
2981
39df54f7d6b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2768
diff changeset
   595
                        ('-')  
3233
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   596
                        ('Hard Terminate'        hardTerminateProcess)
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   597
                  ).
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   598
    ] ifFalse:[
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   599
        items := #(
3233
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   600
                             ('Inspect'               inspectSelection)
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   601
                             ('Debug'                 debugProcess)
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   602
"/                             ('Debug when resumed'    debugProcessWhenResumed)
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   603
                             ('-')  
3233
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   604
                             ('Resume'                resumeProcess)
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   605
                             ('Suspend'               suspendProcess)
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   606
                             ('Stop'                  stopProcess)
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   607
                             ('-')   
3233
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   608
                             ('Abort'                 abortProcess)
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   609
                             ('Terminate'             terminateProcess)
4253
fb44beaa9aa1 menu labels
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   610
                             ('Terminate Group'       terminateProcessGroup)
3233
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   611
                             ('Restart'               restartProcess)
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   612
                             ('-')  
4253
fb44beaa9aa1 menu labels
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   613
                             ('Raise Prio'            raisePrio)
fb44beaa9aa1 menu labels
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   614
                             ('Lower Prio'            lowerPrio)
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   615
                            ).
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   616
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   617
        updateProcess isNil ifTrue:[
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   618
            items := #( 
3233
7ee8f7099595 uppercase labels
Claus Gittinger <cg@exept.de>
parents: 3023
diff changeset
   619
                        ('Update' updateView) 
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   620
                        ('-')
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   621
                      ) , items.
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   622
        ].
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   623
    ].
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   624
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   625
    m := PopUpMenu 
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   626
                itemList:items
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   627
                resources:resources
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   628
                performer:self.
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   629
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   630
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   631
    listView hasSelection ifFalse:[
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   632
        m disableAll:#(
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   633
                             inspectSelection
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   634
                             debugProcess
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   635
                             debugProcessWhenResumed
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   636
                             resumeProcess  
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   637
                             suspendProcess  
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   638
                             stopProcess  
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   639
                             restartProcess
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   640
                             abortProcess
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   641
                             terminateProcess
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   642
                             terminateProcessGroup
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   643
                             raisePrio
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   644
                             lowerPrio
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   645
                      )
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   646
    ] ifTrue:[
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   647
        allRestartable := true.
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   648
        self selectedProcessesDo:[:p |
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   649
            p isRestartable ifFalse:[
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   650
                allRestartable := false
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   651
            ].
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   652
        ].
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   653
        allRestartable ifFalse:[
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   654
            m disable:#restartProcess
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   655
        ].
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   656
    ].
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   657
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   658
    m checkToggleAt:#toggleDetail put:showDetail.
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   659
    ^ m
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   660
1932
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   661
    "Created: / 23.1.1997 / 03:05:54 / cg"
5eff508ce300 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1896
diff changeset
   662
    "Modified: / 14.10.1998 / 17:15:43 / cg"
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   663
!
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   664
92
claus
parents: 90
diff changeset
   665
stopProcess
claus
parents: 90
diff changeset
   666
    "stop the selected process - not even interrupts will wake it up"
claus
parents: 90
diff changeset
   667
claus
parents: 90
diff changeset
   668
    self selectedProcessesSend:#stop
claus
parents: 90
diff changeset
   669
!
claus
parents: 90
diff changeset
   670
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
   671
suspendProcess
92
claus
parents: 90
diff changeset
   672
    "suspend the selected process - interrupts will let it run again"
claus
parents: 90
diff changeset
   673
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
   674
    self selectedProcessesSend:#suspend
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   675
!
45
950b84ba89e6 *** empty log message ***
claus
parents: 19
diff changeset
   676
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   677
terminateProcess
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   678
    "terminate the selected process"
92
claus
parents: 90
diff changeset
   679
3379
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   680
    self selectedProcessesSend:#terminate.
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   681
    self updateList.
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   682
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   683
    "Modified: / 9.11.2001 / 01:09:24 / cg"
663
befe6a1d886f show process group & added menu item to terminate a complete group
Claus Gittinger <cg@exept.de>
parents: 656
diff changeset
   684
!
befe6a1d886f show process group & added menu item to terminate a complete group
Claus Gittinger <cg@exept.de>
parents: 656
diff changeset
   685
befe6a1d886f show process group & added menu item to terminate a complete group
Claus Gittinger <cg@exept.de>
parents: 656
diff changeset
   686
terminateProcessGroup
817
a2c25d3e8186 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   687
    "terminate the selected process with all of its subprocesses"
663
befe6a1d886f show process group & added menu item to terminate a complete group
Claus Gittinger <cg@exept.de>
parents: 656
diff changeset
   688
3379
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   689
    self selectedProcessesSend:#terminateGroup.
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   690
    self updateList.
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   691
ee3921d762e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3233
diff changeset
   692
    "Modified: / 9.11.2001 / 01:09:30 / cg"
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   693
!
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   694
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   695
toggleDetail
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   696
    "toggle detail"
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   697
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   698
    showDetail := showDetail not.
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   699
    self updateView
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   700
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   701
    "Modified: 23.1.1997 / 02:33:03 / cg"
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   702
    "Created: 23.1.1997 / 02:33:30 / cg"
19
4cde336c0794 Initial revision
claus
parents:
diff changeset
   703
! !
4cde336c0794 Initial revision
claus
parents:
diff changeset
   704
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   705
!ProcessMonitor methodsFor:'private'!
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   706
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   707
selectedProcessesDo:aBlock
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   708
    "evaluate aBlock on all selected processes"
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   709
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   710
    |p nr sel|
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   711
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   712
    sel := listView selection.
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   713
    sel isNil ifTrue:[^ self].
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   714
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   715
    (sel isKindOf:Collection) ifTrue:[
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   716
	sel do:[:n |
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   717
	    nr := n - 2.   "for headlines"
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   718
	    nr notNil ifTrue:[
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   719
		nr > 0 ifTrue:[
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   720
		    p := processes at:nr.
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   721
		    (p notNil and:[p ~~ 0]) ifTrue:[
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   722
		       aBlock value:p
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   723
		    ]
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   724
		]
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   725
	    ]
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   726
	]
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   727
    ] ifFalse:[
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   728
	nr := sel - 2.     "for headlines"
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   729
	nr notNil ifTrue:[
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   730
	    nr > 0 ifTrue:[
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   731
		p := processes at:nr.
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   732
		(p notNil and:[p ~~ 0]) ifTrue:[
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   733
		   aBlock value:p
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   734
		]
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   735
	    ]
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   736
	]
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   737
    ].
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   738
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   739
    "Modified: 23.1.1997 / 03:10:53 / cg"
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   740
!
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   741
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   742
selectedProcessesSend:aSelector
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   743
    "send a message to all selected processes"
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   744
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   745
    self selectedProcessesDo:[:p |
1896
e92534f5dfb7 fixed selection handling
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   746
	p perform:aSelector
143
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   747
    ].
95c177bc7678 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   748
    self updateView.
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   749
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   750
    "Modified: 23.1.1997 / 02:34:49 / cg"
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   751
! !
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   752
2084
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   753
!ProcessMonitor methodsFor:'process selection'!
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   754
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   755
getProcessList
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   756
    "select processes to display.
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   757
     Subclasses may redefine this"
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   758
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   759
    |coll|
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   760
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   761
    showDetail ifTrue:[
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   762
        coll := Process allSubInstances asOrderedCollection.
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   763
    ] ifFalse:[
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   764
        coll := ProcessorScheduler knownProcesses asOrderedCollection.
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   765
    ].
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   766
    ^ coll
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   767
! !
0445a6a61d45 Extract #getProcessList to support easy subclasses.
Stefan Vogel <sv@exept.de>
parents: 2013
diff changeset
   768
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   769
!ProcessMonitor methodsFor:'user actions'!
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   770
979
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   771
doubleClicked
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   772
    "open a debugger on the selected process"
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   773
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   774
    self debugProcess
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   775
c1e318bee326 extracted common stuff into a superclass
Claus Gittinger <cg@exept.de>
parents: 817
diff changeset
   776
    "Created: 23.1.1997 / 03:21:30 / cg"
85
d9713a3ca092 *** empty log message ***
claus
parents: 58
diff changeset
   777
! !
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   778
771
5cd10b4845f3 oops - catching the terminateSignal is no good idea
Claus Gittinger <cg@exept.de>
parents: 682
diff changeset
   779
!ProcessMonitor class methodsFor:'documentation'!
208
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   780
c79225d671c3 better detail info
Claus Gittinger <cg@exept.de>
parents: 166
diff changeset
   781
version
12125
0c49a3b13e43 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12123
diff changeset
   782
    ^ '$Header: /cvs/stx/stx/libtool/ProcessMonitor.st,v 1.84 2007/10/05 09:53:00 cg Exp $'
12650
e0f607754b9a Merged 18d06283743d and ff31bac2fd1b (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   783
!
e0f607754b9a Merged 18d06283743d and ff31bac2fd1b (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   784
e0f607754b9a Merged 18d06283743d and ff31bac2fd1b (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   785
version_HG
e0f607754b9a Merged 18d06283743d and ff31bac2fd1b (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   786
e0f607754b9a Merged 18d06283743d and ff31bac2fd1b (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   787
    ^ '$Changeset: <not expanded> $'
12125
0c49a3b13e43 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12123
diff changeset
   788
! !
12650
e0f607754b9a Merged 18d06283743d and ff31bac2fd1b (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12125
diff changeset
   789