Annotation of embedaddon/bird2/lib/resource.sgml, revision 1.1.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>