Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потоки для каждого элемента класса 
V
    Опции темы
hente
Дата 7.11.2009, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.3.2009
Где: Томск

Репутация: нет
Всего: нет



Собсно проблема следующая: создаю класс конструктор коготорого должен создавать новый поток 
через: pth_crete(....).

Код

class PTH{
      public:
           PTH(void*(*)(void*))
};

PTH::PTH(void*(*func)(void*)){
     pth_create(id,NULL,func,NUL);

}


вот этот кусок кода как тока невидоизменял никак не принимает компилятор
А необходимо все навсего при создании эллемента класса создавать новый поток а в конструктор передать указатель на ф-ю (статическую или глобальную без разницы) как сделаьб посоветуйте.... smile 


За ранее спасибо!
--------------------
  долой быдло кодеров!!!
PM MAIL   Вверх
vinick
Дата 9.11.2009, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 9.6.2005

Репутация: 4
Всего: 22



Код

#include <pthread.h>
class PTH{
  pthread_t id;
public:
  PTH(void*(*)(void*));
};

PTH::PTH(void*(*func)(void*)){
  int rv = pthread_create(&id,NULL,func,NULL);
  // тут вставить обработку возвращаемого значения
}

PM MAIL ICQ Jabber   Вверх
chaos
Дата 9.11.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 3
Всего: 44



vinick, тогда уж лучше за "тайпдефить"
Код

typedef void* (*thread_func)(void*);

class PTH
{
public:
    PTH(thread_func tf)
};

PTH::PTH(thread_func tf)
{
    pth_create(id,NULL,tf,NUL);
}



ИМХО приятней

Это сообщение отредактировал(а) chaos - 9.11.2009, 09:37
PM WWW   Вверх
hente
Дата 11.11.2009, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.3.2009
Где: Томск

Репутация: нет
Всего: нет



vinick,  вот именно так и делаю....а выдает 

/tmp/ccnrCIDX.o(.text+0x4b1): In function `Pthread::Pthread[not-in-charge](void* (*)(void*))':
: undefined reference to `pthread_create'
/tmp/ccnrCIDX.o(.text+0x4cf): In function `Pthread::Pthread[in-charge](void* (*)(void*))':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status


чо не так делаю....


А экземляр создаю банально 


Код

void* main_func(void*){

}
............
Pthread A(main_func)


вотьь.....есть варианты?


Это сообщение отредактировал(а) hente - 11.11.2009, 09:18
--------------------
  долой быдло кодеров!!!
PM MAIL   Вверх
vinick
Дата 11.11.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 9.6.2005

Репутация: 4
Всего: 22



А при сборке -pthread указываешь?

Код

 $ g++ -o test test.cpp -pthread


PM MAIL ICQ Jabber   Вверх
hente
Дата 11.11.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.3.2009
Где: Томск

Репутация: нет
Всего: нет



 smile гы ашно самому смешно стало  smile  спасибо большое!
--------------------
  долой быдло кодеров!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0702 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.