Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8303145
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 8, 20262026-06-08T17:27:21+00:00 2026-06-08T17:27:21+00:00

I have a problem, I have this pointers in my thread code and they

  • 0

I have a problem, I have this pointers in my thread code and they are being modify in there, but when it return to the main the changes are not there like this:

Threads

void threaded_function(Model_factory &mf, ppa::Node *root) { // threads management

try { // n try...

Main

 int main(int argc, char *argv[]) { ...

In the main I am creating a node root, then in threads the node is being given sequences and has a bool that changes to true like:

ppa::Node *root;

And in the threads is working (a thread group) I can get and set that bool as I wish, but when the thread group finishes with join all (this is boost) the pointer root give me 0 on this line

cout << root->has_sequence() << endl;

After this goes on and the node is again filled with something, so what I want to ask is why is my node pointer not reflecting the changes in the threads, is it design or am I wrong (likely the second) and what should I do a global root node will that fix my issue, but why?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-08T17:27:23+00:00Added an answer on June 8, 2026 at 5:27 pm

    If you have a race condition, you have to suspect that you are accessing critical sections unlocked. I notice that you are manually locking and unlocking your mutex variable. This could lead to errors in your code. For instance, this construct looks particularly alarming:

    for (int i = 0; i < deque_done.size(); i++) {
    
        tuple_compare(deque_done.at(i));
    
        result_mutex.unlock();
    
    }
    

    Instead of locking and unlocking manually, you may consider using boost::recursive_mutex and boost::recursive_mutex::scoped_lock to manage lock acquisition and release.

    boost::recursive_mutex result_mutex;
    
    void foo () {
        boost::recursive_mutex::scoped_lock lock(result_mutex);
        //...
    }
    

    If you really insist on designing a recursive algorithm that allows reentrancy from multiple threads, perhaps you can make use of a boost::shared_mutex, and boost::shared_lock/boost::upgradeable_lock for the read lock, and boost::unique_lock/boost::upgrade_to_unique_lock for write access. You can follow this link for an example.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have problem with this code: file = tempfile.TemporaryFile(mode='wrb') file.write(base64.b64decode(data)) file.flush() os.fsync(file) # file.seek(0)
Hi i have problem with this code, i found it on the internet and
i am a beginner and i have a problem : this code doesnt compile
I have this problem: I want to generate a new source code file from
There was a thread on this in comp.lang.javascript recently where victory was announced but
I have the following problem with this segment of code. Can some one please
So I have this problem where the output prints the address of my pointer,
I'm working on a problem that uses pointer arithmetic and I have found this
I really have problem with this one. So I have a jar with a
I'm developing an Android application with a spinner. I have this problem: This is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.