Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-30 08:46:18

0001 /*
0002     Copyright (c) 2005-2021 Intel Corporation
0003 
0004     Licensed under the Apache License, Version 2.0 (the "License");
0005     you may not use this file except in compliance with the License.
0006     You may obtain a copy of the License at
0007 
0008         http://www.apache.org/licenses/LICENSE-2.0
0009 
0010     Unless required by applicable law or agreed to in writing, software
0011     distributed under the License is distributed on an "AS IS" BASIS,
0012     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0013     See the License for the specific language governing permissions and
0014     limitations under the License.
0015 */
0016 
0017 #ifndef _TBB_detail__intrusive_list_node_H
0018 #define _TBB_detail__intrusive_list_node_H
0019 
0020 namespace tbb {
0021 namespace detail {
0022 namespace d1 {
0023 
0024 //! Data structure to be inherited by the types that can form intrusive lists.
0025 /** Intrusive list is formed by means of the member_intrusive_list<T> template class.
0026     Note that type T must derive from intrusive_list_node either publicly or
0027     declare instantiation member_intrusive_list<T> as a friend.
0028     This class implements a limited subset of std::list interface. **/
0029 struct intrusive_list_node {
0030     intrusive_list_node* my_prev_node{};
0031     intrusive_list_node* my_next_node{};
0032 #if TBB_USE_ASSERT
0033     intrusive_list_node() { my_prev_node = my_next_node = this; }
0034 #endif /* TBB_USE_ASSERT */
0035 };
0036 
0037 } // namespace d1
0038 } // namespace detail
0039 } // namespace tbb
0040 
0041 #endif // _TBB_detail__intrusive_list_node_H