Skip to content

Feat/v0.6.5 cthreads docs#9

Merged
ikelaiah merged 2 commits into
mainfrom
feat/v0.6.5-cthreads-docs
Jun 12, 2026
Merged

Feat/v0.6.5 cthreads docs#9
ikelaiah merged 2 commits into
mainfrom
feat/v0.6.5-cthreads-docs

Conversation

@ikelaiah

Copy link
Copy Markdown
Owner

What does this PR do?

Documents the cthreads requirement for Linux/macOS so new users don't hit a
runtime crash. On Unix-like systems, Free Pascal does not install a threading
manager by default — a program using this library must list cthreads as the
first unit in its uses clause, or creating the pool fails at runtime with
an access violation (exit code 217). This is a runtime failure, not a compile
error, so the build succeeds and only crashes when run — exactly the kind of
gotcha that's painful to diagnose.

This is a documentation-only release (v0.6.5). No source code or public API
changes.

Changes:

  • README: prominent cthreads note at the top of Quick Start (with a quote
    from the official FPC docs), the {$IFDEF UNIX}cthreads{$ENDIF} guard added
    to every Quick Start and Installation snippet, and a reminder in the
    compilation Tip.
  • API docs: platform note + link to the official cthreads documentation
    at the top of both ThreadPool.Simple-API.md and
    ThreadPool.ProducerConsumer-API.md.
  • Roadmap: "Planned/In Progress" dropped adaptive thread adjustment
    (conflicts with the fixed-count, intentionally-simple design) and added
    richer error handling, planned for 0.7.0.
  • Release note: docs/release-notes-v0.6.5.md.
  • Version bumped to 0.6.5 (README badge, package .lpk), CHANGELOG.md updated.

Related issue

N/A

Type of change

  • 🐛 Bug fix
  • ✨ New feature
  • 📝 Documentation / examples
  • 🔧 Refactor / internal change

Checklist

  • Tests pass locally (lazbuild tests/TestRunner.lpi then run TestRunner) — no code changed; package builds clean and CI runs the full suite
  • Added/updated tests where it makes sense — N/A, documentation only
  • Updated CHANGELOG.md
  • Updated docs in docs/ if behavior or API changed
  • New units use {$mode objfpc}{$H+}{$J-} and filenames match unit casing — N/A, no new units

ikelaiah added 2 commits June 12, 2026 08:48
Programs that use this library on Unix-like systems must list cthreads as the
first unit in their uses clause, or creating the pool crashes at runtime with
an access violation (exit code 217) - a runtime failure, not a compile error.
This release documents the requirement everywhere a new user looks. No code or
API changes.

- README: prominent cthreads note at the top of Quick Start; add the
  {$IFDEF UNIX}cthreads{$ENDIF} guard to every Quick Start and Installation
  snippet; reminder in the compilation Tip.
- docs/ThreadPool.Simple-API.md, docs/ThreadPool.ProducerConsumer-API.md: add
  a platform note at the top of each.
- docs/release-notes-v0.6.5.md: new release note.
- README "Planned/In Progress": drop adaptive thread adjustment (conflicts with
  the fixed-count design); add richer error handling, planned for 0.7.0.
- Bump version to 0.6.5 (README badge, package .lpk).
@ikelaiah ikelaiah added documentation Improvements or additions to documentation enhancement New feature or request labels Jun 12, 2026
@ikelaiah ikelaiah self-assigned this Jun 12, 2026
@ikelaiah ikelaiah merged commit 0f16029 into main Jun 12, 2026
4 checks passed
@ikelaiah ikelaiah deleted the feat/v0.6.5-cthreads-docs branch June 12, 2026 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant