equal
deleted
inserted
replaced
27 #include "gc/z/zFuture.hpp" |
27 #include "gc/z/zFuture.hpp" |
28 #include "runtime/semaphore.inline.hpp" |
28 #include "runtime/semaphore.inline.hpp" |
29 #include "runtime/thread.hpp" |
29 #include "runtime/thread.hpp" |
30 |
30 |
31 template <typename T> |
31 template <typename T> |
|
32 inline ZFuture<T>::ZFuture() : |
|
33 _value() {} |
|
34 |
|
35 template <typename T> |
32 inline void ZFuture<T>::set(T value) { |
36 inline void ZFuture<T>::set(T value) { |
33 // Set value |
37 // Set value |
34 _value = value; |
38 _value = value; |
35 |
39 |
36 // Notify waiter |
40 // Notify waiter |
37 _sema.signal(); |
41 _sema.signal(); |
|
42 } |
|
43 |
|
44 template <typename T> |
|
45 inline T ZFuture<T>::peek() { |
|
46 return _value; |
38 } |
47 } |
39 |
48 |
40 template <typename T> |
49 template <typename T> |
41 inline T ZFuture<T>::get() { |
50 inline T ZFuture<T>::get() { |
42 // Wait for notification |
51 // Wait for notification |