cameron314 / cameron314/concurrentqueue

How can I define element size dynamically ?

Open
#442 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
12.5k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

In my project, I need multiple producer threads to generate objects of a certain data type, and the size of this object is determined by an externally passed JSON during program runtime. However, it seems that our lock-free queue can only allocate memory based on the compile-time-specified T and sizeof(T)? I have tried using as T and then enqueuing n chars in bulk mode, but the speed is much slower compared to when T = std::array<char, n>. Is there any way for me to dynamically modify the element size recognized by the lock-free queue? Does this require modifying the source code to achieve?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by reading the lock-free queue's element allocation and bulk-enqueue paths, then compare the char-based and std::array<char, n> cases described in the issue. Done means establishing whether runtime-sized elements are supported and, if not, defining the required scope for a source change.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.