diff --git a/examples/MemoryPool.cpp_ b/examples/MemoryPool-1.cpp_ similarity index 100% rename from examples/MemoryPool.cpp_ rename to examples/MemoryPool-1.cpp_ diff --git a/examples/MemoryPool-2.cpp_ b/examples/MemoryPool-2.cpp_ new file mode 100644 index 00000000..75427004 --- /dev/null +++ b/examples/MemoryPool-2.cpp_ @@ -0,0 +1,45 @@ +#include +#include + +Led led; +ListTT *lst; +MemoryPoolTT<1, unsigned> *mem; +TaskT<512> *sla; +TaskT<768> *mas; + +void slave() +{ + unsigned*p; + + lst->wait(&p); + led = *p; + mem->give(p); + + ThisTask::stop(); +} + +void master() +{ + unsigned*p; + unsigned x = 1; + + for (;;) + { + sla = TaskT<512>::detached(0, slave); + ThisTask::delay(SEC); + + mem->wait(&p); + *p=x; + lst->give(p); + x = (x << 1) | (x >> 3); + } +} + +int main() +{ + lst = ListTT::create(); + mem = MemoryPoolTT<1, unsigned>::create(); + mas = TaskT<768>::create(0, master); + + ThisTask::stop(); +}