tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Thread.cpp (869B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "threading/Thread.h"
      8 #include "mozilla/Assertions.h"
      9 
     10 namespace js {
     11 
     12 Thread::~Thread() { MOZ_RELEASE_ASSERT(!joinable()); }
     13 
     14 Thread::Thread(Thread&& aOther) {
     15  id_ = aOther.id_;
     16  aOther.id_ = ThreadId();
     17  options_ = aOther.options_;
     18 }
     19 
     20 Thread& Thread::operator=(Thread&& aOther) {
     21  MOZ_RELEASE_ASSERT(!joinable());
     22  id_ = aOther.id_;
     23  aOther.id_ = ThreadId();
     24  options_ = aOther.options_;
     25  return *this;
     26 }
     27 
     28 ThreadId Thread::get_id() { return id_; }
     29 
     30 bool Thread::joinable() { return id_ != ThreadId(); }
     31 
     32 }  // namespace js