equal
deleted
inserted
replaced
733 "add a node to list of updating indications |
733 "add a node to list of updating indications |
734 " |
734 " |
735 |index| |
735 |index| |
736 |
736 |
737 accessLock critical:[ |
737 accessLock critical:[ |
|
738 |prio| |
|
739 |
738 index := indicatorList identityIndexOf:aNode. |
740 index := indicatorList identityIndexOf:aNode. |
739 |
741 |
740 index ~~ 0 ifTrue:[ |
742 index ~~ 0 ifTrue:[ |
741 indicatorList removeIndex:index. "/ reorganize list to be faster |
743 indicatorList removeIndex:index. "/ reorganize list to be faster |
742 ]. |
744 ]. |
743 indicatorList addFirst:aNode. |
745 indicatorList addLast: "addFirst:" aNode. |
744 |
746 |
745 indicatorTask isNil ifTrue:[ |
747 indicatorTask isNil ifTrue:[ |
|
748 prio := Processor activePriority. |
746 indicatorTask := [ |
749 indicatorTask := [ |
747 [ self taskCycle ] whileTrue:[ Processor yield ] |
750 [ self taskCycle ] whileTrue:[ Processor yield ] |
748 ] forkAt:(Processor activePriority - 1) |
751 ] forkAt:(prio - 1). |
749 ] |
752 indicatorTask priorityRange:(prio-1 to:prio). |
750 ]. |
753 ] |
|
754 ]. |
|
755 |
|
756 "Modified: / 26.9.1998 / 15:20:44 / cg" |
751 ! |
757 ! |
752 |
758 |
753 stopIndicatorValidationFor:aNodeOrList |
759 stopIndicatorValidationFor:aNodeOrList |
754 "remove a node or list of nodes from list of updating indications |
760 "remove a node or list of nodes from list of updating indications |
755 " |
761 " |
772 accessLock critical:[ indicatorList removeAll ] |
778 accessLock critical:[ indicatorList removeAll ] |
773 |
779 |
774 ! |
780 ! |
775 |
781 |
776 taskCycle |
782 taskCycle |
777 "run one cycle |
783 "run one cycle fetching indicator state. |
778 " |
784 This is done in the background to avoid long startup |
|
785 delays, in case the indicator information takes long to |
|
786 gather (i.e. when reading directories)" |
|
787 |
779 |node| |
788 |node| |
780 |
789 |
781 accessLock critical:[ |
790 accessLock critical:[ |
782 indicatorList isEmpty ifTrue:[ "/ queue is empty; terminate task |
791 indicatorList isEmpty ifTrue:[ "/ queue is empty; terminate task |
783 indicatorTask := nil. |
792 indicatorTask := nil. |
796 ifTrue:[ |
805 ifTrue:[ |
797 node showIndicator:true |
806 node showIndicator:true |
798 ]. |
807 ]. |
799 ^ true |
808 ^ true |
800 |
809 |
801 "Modified: / 24.9.1998 / 21:13:24 / cg" |
810 "Modified: / 26.9.1998 / 15:11:16 / cg" |
802 ! ! |
811 ! ! |
803 |
812 |
804 !SelectionInTree class methodsFor:'documentation'! |
813 !SelectionInTree class methodsFor:'documentation'! |
805 |
814 |
806 version |
815 version |
807 ^ '$Header: /cvs/stx/stx/libwidg2/SelectionInTree.st,v 1.16 1998-09-24 20:09:24 cg Exp $' |
816 ^ '$Header: /cvs/stx/stx/libwidg2/SelectionInTree.st,v 1.17 1998-09-28 09:58:57 cg Exp $' |
808 ! ! |
817 ! ! |