Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0003522 [Croquet] Hedgehog minor always 05-02-06 01:39 03-03-08 15:08
Reporter bfowlow View Status public  
Assigned To andreas
Priority normal Resolution reopened  
Status feedback  
Summary 0003522: SharedQueue makeRoomAtEnd leaves references in high end of array
Description
SharedQueue makeRoomAtEnd does a conventional downshift
of its content array but does not nil out the high end space afterword.

It can then hang on far too long to whatever object refs were left
there, so they can cannot be garbage collected until the queue walks up
to its high water mark again.

A simple fix is


makeRoomAtEnd
   | contentsSize |
    readPosition = 1
        ifTrue: [contentsArray := contentsArray , (Array new: 10)]
        ifFalse:
            [contentsSize := writePosition - readPosition.
            "BLT direction ok for this. Lots faster!!!!!! SqR!! 4/10/2000 10:47"
            contentsArray
                replaceFrom: 1
                to: contentsSize
                with: contentsArray
                startingAt: readPosition.

        "fix: clear the old upper range so we don't hoard references."
            contentsArray
                from: contentsSize+1 "new end of content"
                to: writePosition-1 "old write position"
                put: nil.

                 "fix ends"
            readPosition := 1.
            writePosition := contentsSize + 1]
Additional Information
The SharedQueue used by WorldState's deferredUIMessage service
(used heavily by the TMorphicForm hedgehack) is often affected by this.
Attached Files

- Relationships

- Notes
(0005282 - 18 - 18 - 18 - 18 - 18 - 18)
andreas
06-19-06 21:47

In the repository.
 
(0011900 - 78 - 78 - 78 - 289 - 289 - 289)
bert
03-03-08 15:08

This was actually a duplicate of 0002125, but 0002708 is still unfixed in Croquet.
 

- Issue History
Date Modified Username Field Change
05-02-06 01:39 bfowlow New Issue
06-19-06 21:47 andreas Status new => resolved
06-19-06 21:47 andreas Resolution open => fixed
06-19-06 21:47 andreas Assigned To  => andreas
06-19-06 21:47 andreas Note Added: 0005282
03-03-08 15:08 bert Status resolved => feedback
03-03-08 15:08 bert Resolution fixed => reopened
03-03-08 15:08 bert Note Added: 0011900


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
44 total queries executed.
35 unique queries executed.
Powered by Mantis Bugtracker