| 141 | }; |
| 142 | |
| 143 | __thread_struct_imp::~__thread_struct_imp() { |
| 144 | for (_Notify::iterator i = notify_.begin(), e = notify_.end(); i != e; ++i) { |
| 145 | i->first->notify_all(); |
| 146 | i->second->unlock(); |
| 147 | } |
| 148 | for (_AsyncStates::iterator i = async_states_.begin(), e = async_states_.end(); i != e; ++i) { |
| 149 | (*i)->__make_ready(); |
| 150 | (*i)->__release_shared(); |
| 151 | } |
| 152 | } |
| 153 | |
| 154 | void __thread_struct_imp::notify_all_at_thread_exit(condition_variable* cv, mutex* m) { |
| 155 | notify_.push_back(pair<condition_variable*, mutex*>(cv, m)); |
nothing calls this directly
no test coverage detected