Предлагаю другой вариант
Пользовательские классы
Код
class Proc1
{
public:
OS_PROCESS void exec();
};
class Proc2
{
public:
OS_PROCESS void exec();
};
class Proc3
{
public:
OS_PROCESS void exec();
};
Proc1 p1;
Proc2 p2;
Proc3 p3;
Процессы
Код
typedef OS::process<OS::pr0, 300, Proc1, &p1> TProc1;
typedef OS::process<OS::pr1, 300, Proc2, &p2> TProc2;
typedef OS::process<OS::pr2, 300, Proc3, &p3> TProc3;
TProc1 Proc1;
TProc2 Proc2;
TProc3 Proc3;
Функция процесса вызывает конкретную функцию конкретного класса
Код
template<TPriority pr, size_t stack_size, class T, T* p>
OS_PROCESS static void process::exec()
{
p->exec();
}
Сообщение отредактировал Vasya777 - Mar 20 2013, 17:04