Documentation
ThreadSafeCollections-FP
Thread-safe generic lists, deques, dictionaries, and hash sets for Free Pascal.
Compile a first thread-safe list in five minutes.
CollectionsListIndexed storage with sorting, searching, and range operations.
CollectionsDequeQueue and stack behaviour at both ends.
CollectionsDictionaryLocking key/value lookup with snapshot iteration.
CollectionsHash SetUnique values with set algebra and specialized types.
PatternsLock TokensRAII-style locking through interface counting.
ThreadSafeCollections-FP provides familiar collection APIs with per-instance synchronization, bulk operations, and documented iteration behavior for Free Pascal and Lazarus. It is a learning-focused project with a tested core, runnable examples, and no required packages beyond the Free Pascal standard distribution.
What you can do#
Each collection instance owns one TCriticalSection and exposes the same familiar operations you expect from a non-threaded collection, synchronized per method call. Choose a collection below, then read the guide that matches your task.
- List — indexed storage with add, insert, delete, range, sort, search,
reverse, and capacity operations.
- Deque — a circular-buffer double-ended queue with
Push/Pop/Peek*
and Try* operations at both ends.
- Dictionary — chained hash buckets for key/value storage with custom hash
and equality functions and snapshot-based iteration.
- Hash set — unique values with intersection, union, difference, overlap,
and set-equality operations, plus specialized integer, string, Boolean, and real subclasses.
Where to start#
- New to the project? Follow the Quick Start, then the
- Adding the library to an application? Start with
- Looking up a declaration? Open the generated
Cheat Sheet and the API Overview.
- Building, testing, or contributing? See Building & Verification.
The online documentation is versioned. The top-level site opens the current release (/0.8.8/); the version selector in the header moves between released documentation paths and stays on the matching page when it exists.