Contains classes and routines used to implement free notifications. Base class used to implement objects which perform free notifications. List of notification methods called when the object is freed. Destructor for the class instance. Adds the specified method to the notification list in the class instance. The notification event handler added to the internal list. Removes the specified method from the internal list. The notification event handler removed form the internal list. Implements a thread-safe reference-counted class which performs free notifications.

Used in the implementation of logging classes and the debugger interface in Lazarus. Also used in the implementation of classes for TSynEdit.

AddReference and ReleaseReference can be used in threads. However a thread can only call the methods, if either:

  • The thread already holds a refernce (and no other thread will release that reference).
  • The thread created the reference, and no other thread has access to the object (yet).
  • The thread is in a critical section, preventing other threads from decreasing the reference count.

AddReference and ReleaseReference can be used in threads. However a thread can only call the methods, if either:

  • The thread already holds a refernce (and no other thread will release that reference).
  • The thread created the reference, and no other thread has access to the object (yet).
  • The thread is in a critical section, preventing other threads from decreasing the reference count.
Implements a list used to store TRefCountedObject instances.

Provides a Notify method which executes the notification methods for each reference-counted object in the list.