File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -3,18 +3,20 @@ class Shared // template definition
3
3
{
4
4
public:
5
5
Shared () {
6
- queue = new rtos::Queue<Shared<T> , 16 >;
6
+ queue = new rtos::Queue<T , 16 >;
7
7
}
8
8
operator T () const {
9
9
osEvent evt = queue->get ();
10
10
if (evt.status == osEventMessage) {
11
- Shared<T> *x = (Shared<T>*)evt.value .p ;
12
- return x->val ;
11
+ T x = *((T*)evt.value .p );
12
+ delete (T*)evt.value .p ;
13
+ return x;
13
14
}
14
15
}
15
16
T& operator = (const T& other) {
16
17
val = other;
17
- queue->put (this );
18
+ T* obj = new T (val);
19
+ queue->put (obj);
18
20
}
19
21
T& peek () {
20
22
return val;
@@ -24,7 +26,7 @@ class Shared // template definition
24
26
}
25
27
private:
26
28
T val;
27
- rtos::Queue<Shared<T> , 16 > * queue;
29
+ rtos::Queue<T , 16 >* queue;
28
30
};
29
31
30
32
#define CONCAT2 (x,y ) x##y
You can’t perform that action at this time.
0 commit comments