Annotation of embedaddon/bird/lib/resource.sgml, revision 1.1

1.1     ! misho       1: <!--
        !             2:        BIRD Programmer's Guide: Resources
        !             3: 
        !             4:        (c) 2000 Martin Mares <mj@ucw.cz>
        !             5: -->
        !             6: 
        !             7: <chapt>Resources
        !             8: 
        !             9: <sect>Introduction
        !            10: 
        !            11: <p>Most large software projects implemented in classical procedural
        !            12: programming languages usually end up with lots of code taking care
        !            13: of resource allocation and deallocation. Bugs in such code are often
        !            14: very difficult to find, because they cause only `resource leakage',
        !            15: that is keeping a lot of memory and other resources which nobody
        !            16: references to.
        !            17: 
        !            18: <p>We've tried to solve this problem by employing a resource tracking
        !            19: system which keeps track of all the resources allocated by all the
        !            20: modules of BIRD, deallocates everything automatically when a module
        !            21: shuts down and it is able to print out the list of resources and
        !            22: the corresponding modules they are allocated by.
        !            23: 
        !            24: <p>Each allocated resource (from now we'll speak about allocated
        !            25: resources only) is represented by a structure starting with a standard
        !            26: header (struct <struct/resource/) consisting of a list node (resources are
        !            27: often linked to various lists) and a pointer to <struct/resclass/ -- a resource
        !            28: class structure pointing to functions implementing generic resource
        !            29: operations (such as freeing of the resource) for the particular resource
        !            30: type.
        !            31: 
        !            32: <p>There exist the following types of resources:
        !            33: 
        !            34: <itemize>
        !            35: <item><it/Resource pools/ (<struct/pool/)
        !            36: <item><it/Memory blocks/
        !            37: <item><it/Linear memory pools/ (<struct/linpool/)
        !            38: <item><it/Slabs/ (<struct/slab/)
        !            39: <item><it/Events/ (<struct/event/) 
        !            40: <item><it/Timers/ (<struct/timer/) 
        !            41: <item><it/Sockets/ (<struct/socket/) 
        !            42: </itemize>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>