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