Closed Bug 508091 Opened 16 years ago Closed 16 years ago

BasicList needs to be mutation while iterating proof

Categories

(Tamarin Graveyard :: Garbage Collection (mmGC), defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: treilly, Assigned: treilly)

Details

Attachments

(1 file)

When recieving abort messages GC's remove themselves from this list, it needs to handle this gracefully.
Attachment #392858 - Flags: review?(edwsmith)
Comment on attachment 392858 [details] [diff] [review] Makes list mutation while iterating work nits: * if and while keywords should have a space between them and ( * Compact() needs a comment explaining how it works * nice to have at least one comment per class saying what its for. * needs self tests, probably maybe problems: * if an exception is thrown while a BasicListIterator is alive, then BasicList.iterationCount will not be decremented and will stay >0 forever. If this can't happen, can we guard for it with assertions? if not then at least a policy comment needs to be in there as a warning. * must the BasicList mutator and iterator all be on the same thread? if not then we need mutex code for IteratorAttach() and Detach(). and, probably other access paths. if not, same story -- need safeguards and/or tests and/or comments to state the required contract. most of our code is not thread aware but next(vmpi_spin_lock_t) got my attention.
Attachment #392858 - Flags: review?(edwsmith) → review+
landed changeset: 2337:53b265ea55c9 w/ nits addressed. BasicList::next(vmpi_spin_lock_t) will probably go away, I'll create another bug to deal with the threading issues.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: