equal
deleted
inserted
replaced
7 inclusion of the above copyright notice. This software may not |
7 inclusion of the above copyright notice. This software may not |
8 be provided or otherwise made available to, or used by, any |
8 be provided or otherwise made available to, or used by, any |
9 other person. No title to or ownership of the software is |
9 other person. No title to or ownership of the software is |
10 hereby transferred. |
10 hereby transferred. |
11 " |
11 " |
12 |
|
13 |
|
14 "{ Package: 'stx:libwidg2' }" |
12 "{ Package: 'stx:libwidg2' }" |
15 |
13 |
16 List subclass:#HierarchicalList |
14 List subclass:#HierarchicalList |
17 instanceVariableNames:'recursionLock root showRoot application monitoringTask |
15 instanceVariableNames:'recursionLock root showRoot application monitoringTask |
18 monitoringTaskDelay additionalItemsToMonitorSemaphore' |
16 monitoringTaskDelay additionalItemsToMonitorSemaphore' |
297 |
295 |
298 (monitoringTask isNil |
296 (monitoringTask isNil |
299 and:[self monitoringTaskDelay notNil |
297 and:[self monitoringTaskDelay notNil |
300 and:[(dependents size ~~ 0) or:[additionalItemsToMonitorSemaphore notNil]]] |
298 and:[(dependents size ~~ 0) or:[additionalItemsToMonitorSemaphore notNil]]] |
301 ) ifTrue:[ |
299 ) ifTrue:[ |
302 monitoringTask := [ |
300 monitoringTask := |
303 [(dependents size ~~ 0) or:[additionalItemsToMonitorSemaphore notNil]] whileTrue:[ |
301 [ |
304 self monitoringCycle. |
302 [(dependents size ~~ 0) or:[additionalItemsToMonitorSemaphore notNil]] whileTrue:[ |
305 additionalItemsToMonitorSemaphore isNil ifTrue:[ |
303 self monitoringCycle. |
306 Delay waitForSeconds:self monitoringTaskDelay |
304 additionalItemsToMonitorSemaphore isNil ifTrue:[ |
307 ] ifFalse:[ |
305 Delay waitForSeconds:self monitoringTaskDelay |
308 additionalItemsToMonitorSemaphore waitWithTimeout:self monitoringTaskDelay. |
306 ] ifFalse:[ |
309 ] |
307 additionalItemsToMonitorSemaphore waitWithTimeout:self monitoringTaskDelay. |
310 ]. |
308 ] |
311 ] newProcess. |
309 ]. |
|
310 ] newProcess. |
312 |
311 |
313 monitoringTask priorityRange:(Processor userBackgroundPriority to:Processor activePriority). |
312 monitoringTask priorityRange:(Processor userBackgroundPriority to:Processor activePriority). |
314 monitoringTask restartable:true. |
313 monitoringTask restartable:true. |
315 monitoringTask resume. |
314 monitoringTask resume. |
316 |
315 |
326 |task| |
325 |task| |
327 |
326 |
328 (task := monitoringTask) notNil ifTrue:[ |
327 (task := monitoringTask) notNil ifTrue:[ |
329 monitoringTask := nil. |
328 monitoringTask := nil. |
330 |
329 |
331 Error handle:[:ex| ] do:[ |
330 Error |
332 task terminateWithAllSubprocessesInGroup. |
331 handle:[:ex| ] |
333 task waitUntilTerminated. |
332 do:[ |
334 ] |
333 task terminateWithAllSubprocessesInGroup. |
|
334 task waitUntilTerminated. |
|
335 ] |
335 ] |
336 ] |
336 ! |
337 ! |
337 |
338 |
338 triggerUpdateCycle |
339 triggerUpdateCycle |
339 additionalItemsToMonitorSemaphore isNil ifTrue:[ |
340 additionalItemsToMonitorSemaphore isNil ifTrue:[ |
383 ! ! |
384 ! ! |
384 |
385 |
385 !HierarchicalList class methodsFor:'documentation'! |
386 !HierarchicalList class methodsFor:'documentation'! |
386 |
387 |
387 version |
388 version |
388 ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalList.st,v 1.23 2006-09-12 16:26:43 cg Exp $' |
389 ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalList.st,v 1.24 2009-10-28 15:40:22 cg Exp $' |
389 ! ! |
390 ! |
|
391 |
|
392 version_CVS |
|
393 ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalList.st,v 1.24 2009-10-28 15:40:22 cg Exp $' |
|
394 ! ! |