Changeset 52acfab in mainline for uspace/lib/cpp/include/__bits/thread/threading.hpp
- Timestamp:
- 2019-05-28T19:24:14Z (5 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 77de449e
- Parents:
- af5037d (diff), bebd154 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-05-28 19:24:14)
- git-committer:
- GitHub <noreply@…> (2019-05-28 19:24:14)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/cpp/include/__bits/thread/threading.hpp
raf5037d r52acfab 30 30 #define LIBCPP_BITS_THREAD_THREADING 31 31 32 namespace std::hel33 {34 extern "C" {35 #include <fibril.h>36 #include <fibril_synch.h>37 }38 }39 40 32 #include <chrono> 33 34 #include <fibril.h> 35 #include <fibril_synch.h> 41 36 42 37 namespace std::aux … … 54 49 struct threading_policy<fibril_tag> 55 50 { 56 using mutex_type = hel::fibril_mutex_t;57 using thread_type = hel::fid_t;58 using condvar_type = hel::fibril_condvar_t;59 using time_unit = hel::usec_t;60 using shared_mutex_type = hel::fibril_rwlock_t;51 using mutex_type = ::helenos::fibril_mutex_t; 52 using thread_type = ::helenos::fid_t; 53 using condvar_type = ::helenos::fibril_condvar_t; 54 using time_unit = ::helenos::usec_t; 55 using shared_mutex_type = ::helenos::fibril_rwlock_t; 61 56 62 57 struct thread … … 65 60 static thread_type create(Callable clbl, Payload& pld) 66 61 { 67 return hel::fibril_create(clbl, (void*)&pld);62 return ::helenos::fibril_create(clbl, (void*)&pld); 68 63 } 69 64 70 65 static void start(thread_type thr) 71 66 { 72 hel::fibril_add_ready(thr);67 ::helenos::fibril_add_ready(thr); 73 68 } 74 69 75 70 static thread_type this_thread() 76 71 { 77 return hel::fibril_get_id();72 return ::helenos::fibril_get_id(); 78 73 } 79 74 80 75 static void yield() 81 76 { 82 hel::fibril_yield();77 ::helenos::fibril_yield(); 83 78 } 84 79 … … 94 89 static void init(mutex_type& mtx) 95 90 { 96 hel::fibril_mutex_initialize(&mtx);91 ::helenos::fibril_mutex_initialize(&mtx); 97 92 } 98 93 99 94 static void lock(mutex_type& mtx) 100 95 { 101 hel::fibril_mutex_lock(&mtx);96 ::helenos::fibril_mutex_lock(&mtx); 102 97 } 103 98 104 99 static void unlock(mutex_type& mtx) 105 100 { 106 hel::fibril_mutex_unlock(&mtx);101 ::helenos::fibril_mutex_unlock(&mtx); 107 102 } 108 103 109 104 static bool try_lock(mutex_type& mtx) 110 105 { 111 return hel::fibril_mutex_trylock(&mtx);106 return ::helenos::fibril_mutex_trylock(&mtx); 112 107 } 113 108 … … 123 118 static void init(condvar_type& cv) 124 119 { 125 hel::fibril_condvar_initialize(&cv);120 ::helenos::fibril_condvar_initialize(&cv); 126 121 } 127 122 128 123 static void wait(condvar_type& cv, mutex_type& mtx) 129 124 { 130 hel::fibril_condvar_wait(&cv, &mtx);125 ::helenos::fibril_condvar_wait(&cv, &mtx); 131 126 } 132 127 133 128 static int wait_for(condvar_type& cv, mutex_type& mtx, time_unit timeout) 134 129 { 135 return hel::fibril_condvar_wait_timeout(&cv, &mtx, timeout);130 return ::helenos::fibril_condvar_wait_timeout(&cv, &mtx, timeout); 136 131 } 137 132 138 133 static void signal(condvar_type& cv) 139 134 { 140 hel::fibril_condvar_signal(&cv);135 ::helenos::fibril_condvar_signal(&cv); 141 136 } 142 137 143 138 static void broadcast(condvar_type& cv) 144 139 { 145 hel::fibril_condvar_broadcast(&cv);140 ::helenos::fibril_condvar_broadcast(&cv); 146 141 } 147 142 }; … … 157 152 static void sleep(time_unit time) 158 153 { 159 hel::fibril_usleep(time);154 ::helenos::fibril_usleep(time); 160 155 } 161 156 }; … … 165 160 static void init(shared_mutex_type& mtx) 166 161 { 167 hel::fibril_rwlock_initialize(&mtx);162 ::helenos::fibril_rwlock_initialize(&mtx); 168 163 } 169 164 170 165 static void lock(shared_mutex_type& mtx) 171 166 { 172 hel::fibril_rwlock_write_lock(&mtx);167 ::helenos::fibril_rwlock_write_lock(&mtx); 173 168 } 174 169 175 170 static void unlock(shared_mutex_type& mtx) 176 171 { 177 hel::fibril_rwlock_write_unlock(&mtx);172 ::helenos::fibril_rwlock_write_unlock(&mtx); 178 173 } 179 174 180 175 static void lock_shared(shared_mutex_type& mtx) 181 176 { 182 hel::fibril_rwlock_read_lock(&mtx);177 ::helenos::fibril_rwlock_read_lock(&mtx); 183 178 } 184 179 185 180 static void unlock_shared(shared_mutex_type& mtx) 186 181 { 187 hel::fibril_rwlock_read_unlock(&mtx);182 ::helenos::fibril_rwlock_read_unlock(&mtx); 188 183 } 189 184
Note:
See TracChangeset
for help on using the changeset viewer.