Skip to content

[MODULE] Create C++20 module files for kcenon.thread #371

Description

@kcenon

Summary

Create C++20 module files for thread_system as part of the Tier 1 core libraries.

Parent Epic

Part of kcenon/common_system#256 (C++20 Module Migration - Cross-System Preparation)

Prerequisites

Proposed Module Structure

// Primary module interface
export module kcenon.thread;

import kcenon.common;  // Tier 0 dependency

export import kcenon.thread.core;
export import kcenon.thread.queue;  // Consolidated queue

Module Partitions

Partition Contents
:core Thread pool, worker management
:queue Unified queue implementations (adaptive_job_queue, job_queue)

File Structure

src/modules/
├── thread.cppm              # Primary module interface
├── core.cppm                # Core partition
└── queue.cppm               # Queue partition

CMake Configuration

cmake_minimum_required(VERSION 3.28)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_SCAN_FOR_MODULES ON)

add_library(kcenon_thread)
target_sources(kcenon_thread
    PRIVATE FILE_SET CXX_MODULES
    FILES
        src/modules/thread.cppm
        src/modules/core.cppm
        src/modules/queue.cppm
)

Tasks

  • Wait for common_system module (Tier 0) completion
  • Create module directory structure
  • Create thread.cppm primary interface
  • Create core.cppm partition
  • Create queue.cppm partition
  • Update CMakeLists.txt for module support
  • Verify no circular module dependencies
  • Update all tests to use modules
  • Performance benchmark (compile time)
  • Update documentation

Acceptance Criteria

  • Module builds successfully with CMake 3.28+
  • Successfully imports kcenon.common module
  • All existing tests pass with module
  • No circular dependencies
  • Header-based build still works (transition period)

Migration Timeline

This is Phase 2 work (Release N+3) per EPIC:

  • Blocked by: common_system module completion

Related

Metadata

Metadata

Assignees

Labels

architectureArchitectural changes and designenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions