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