Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/nodejs/src/node_threadsafe_cow-inl.h
$ cat -n /usr/include/nodejs/src/node_threadsafe_cow-inl.h 1 #ifndef SRC_NODE_THREADSAFE_COW_INL_H_ 2 #define SRC_NODE_THREADSAFE_COW_INL_H_ 3 4 #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS 5 6 namespace node { 7 8 template
9 T* CopyOnWrite
::write() { 10 if (data_.use_count() > 1l) { 11 data_ = std::make_shared
(*data_); 12 } 13 return data_.get(); 14 } 15 16 template
17 ThreadsafeCopyOnWrite
::Read::Read(const ThreadsafeCopyOnWrite
* cow) 18 : cow_(cow), lock_(cow->impl_->mutex) {} 19 20 template
21 const T& ThreadsafeCopyOnWrite
::Read::operator*() const { 22 return cow_->impl_->data; 23 } 24 25 template
26 const T* ThreadsafeCopyOnWrite
::Read::operator->() const { 27 return &cow_->impl_->data; 28 } 29 30 template
31 ThreadsafeCopyOnWrite
::Write::Write(ThreadsafeCopyOnWrite
* cow) 32 : cow_(cow), impl_(cow->impl_.write()), lock_(impl_->mutex) {} 33 34 template
35 T& ThreadsafeCopyOnWrite
::Write::operator*() { 36 return impl_->data; 37 } 38 39 template
40 T* ThreadsafeCopyOnWrite
::Write::operator->() { 41 return &impl_->data; 42 } 43 44 template
45 ThreadsafeCopyOnWrite
::Impl::Impl(const Impl& other) { 46 RwLock::ScopedReadLock lock(other.mutex); 47 data = other.data; 48 } 49 50 } // namespace node 51 52 #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS 53 54 #endif // SRC_NODE_THREADSAFE_COW_INL_H_
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™