Changeset 48d9187 in mainline for uspace/lib/cpp/src/thread.cpp


Ignore:
Timestamp:
2018-07-05T21:41:19Z (7 years ago)
Author:
Dzejrou <dzejrou@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1df0165
Parents:
ee51635
git-author:
Dzejrou <dzejrou@…> (2018-03-01 22:20:05)
git-committer:
Dzejrou <dzejrou@…> (2018-07-05 21:41:19)
Message:

cpp: added generic joinable threads

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/cpp/src/thread.cpp

    ree51635 r48d9187  
    4242        if (joinable())
    4343        {
     44            if (joinable_wrapper_)
     45            {
     46                joinable_wrapper_->join();
     47                delete joinable_wrapper_;
     48            }
     49
    4450            // TODO: this crashes :(
    4551            /* fibril_teardown((fibril_t*)id_, false); */
     
    6975    bool thread::joinable() const noexcept
    7076    {
    71         return get_id() != id{};
     77        return id_ != fid_t{};
    7278    }
    7379
    7480    void thread::join()
    7581    {
    76         // TODO:
     82        if (joinable_wrapper_)
     83        {
     84            printf("JOINING\n");
     85            joinable_wrapper_->join();
     86            printf("JOIN ENDED\n");
     87        }
    7788    }
    7889
     
    8091    {
    8192        id_ = fid_t{};
     93
     94        if (joinable_wrapper_)
     95        {
     96            joinable_wrapper_->detach();
     97            joinable_wrapper_ = nullptr;
     98        }
    8299    }
    83100
Note: See TracChangeset for help on using the changeset viewer.