Skip to Content
Shared Source CLI Essentials
book

Shared Source CLI Essentials

by David Stutz, Geoff Shilling, Ted Neward
March 2003
Intermediate to advanced
384 pages
10h 55m
English
O'Reilly Media, Inc.
Content preview from Shared Source CLI Essentials

Finalization

There is an obvious problem with using automatic memory management in conjunction with pointers to unmanaged resources: when components hold references to nonmanaged resources that need to be explicitly disposed of, it is necessary to make sure that the resource is disposed of before the object is collected. The CLI supports a concept called finalization to solve this problem. Finalizable objects are placed on a special weak reference list when created. The collector monitors this list and when all strong references to a finalizable object are released, moves the reference from the weak list to the finalization queue, which continues to keep the object alive. (We saw the finalization queue appear in numerous scan examples earlier in this chapter.) The finalization thread will go though the list of objects in a lazy fashion and call the finalization method on each object. If an object does not become reachable again as a result of being finalized (remember, arbitrary code is being run within the finalization method that can reestablish references!), the finalization reference will be released, and the object will be collected in a normal fashion.

Note

One interesting issue for programmers is that garbage collection happens at unpredictable times, depending on the algorithm and the load. Because of this, it is sometimes desirable to go beyond finalization and revert to an old-fashioned disposal pattern, in which programmers are required to explicitly “close” resources ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

C# 5.0 Unleashed

C# 5.0 Unleashed

Bart De Smet

Publisher Resources

ISBN: 059600351XCatalog PageErrata