Skip to content

feat: Implement Broadcast Channel#35

Open
mach-mikulas wants to merge 1 commit intoMartinUbl:masterfrom
mach-mikulas:master
Open

feat: Implement Broadcast Channel#35
mach-mikulas wants to merge 1 commit intoMartinUbl:masterfrom
mach-mikulas:master

Conversation

@mach-mikulas
Copy link

  • Added CBroadcast_Channel class implementing the core logic:
    • Holds a single message that is overwritten by new writes.
    • Uses a generation counter to track message updates.
    • Implements blocking Read using Block_Current_Process until a new generation is available.
    • Implements Write that updates the message and notifies all waiting readers.
  • Created CBroadcast_FS_Driver mapped to SYS:bcast.
  • Updated CProcess_Resource_Manager to "allocate" and "free" broadcast channels (fixed number of channels are preallocated).
  • Implementation of broadcast is inspired by pipe implementation.

- Added `CBroadcast_Channel` class implementing the core logic:
  - Holds a single message that is overwritten by new writes.
  - Uses a generation counter to track message updates.
  - Implements blocking `Read` using `Block_Current_Process` until a new generation is available.
  - Implements `Write` that updates the message and notifies all waiting readers.
- Created `CBroadcast_FS_Driver` mapped to `SYS:bcast`.
- Updated `CProcess_Resource_Manager` to "allocate" and "free" broadcast channels (fixed number of channels are preallocated).
- Implementation of broadcast is inspired by pipe implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant