🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15012

Re: pthread in c++

#15012
From: delirium
Date: Thu, 07 Dec 2000 16:52
52 lines
2709 bytes
Wim Dumon wrote:
> 
> delirium wrote:
> >
> > als ik multithreading wil doen met pthread.h,
> > hoe kan ik dan als thread functie een memberfunctie van een c++-class
> > gebruiken ?
> >
> 
> Dat kan je alleen met static member functions.
> 
> struct A
> {
>   static void *foo(void *);
> };
> 
> pthread_create(a, b, A::foo, c);
> 
> Wanneer je een method van een welbepaalde class instantiation wil oproepen
> moet je een wrapper functie (mag een static member functie zijn) schrijven:
> 
> struct A
> {
>   static void *pthread_entry(void *p)
>   {
>     reinterpret_cast<A *>(p)->entry();
>     return 0;
>   }
>   void entry();
> };
> 
> ...
> {
>   A c; // Thread entry moet c.entry() zijn
>   pthread_create(a, b, A::pthread_entry, &c);
> }

Bedankt, ik ben er in geslaagd om een aantal berekeningen uit te voeren
in een tweede thread.
Ik heb nog wel een ander probleem:
De tweede thread voort een aantal berekeningen uit en slaat die op in
een globale variable. De hoofd-thread moet dan bij elke berekening die
in de tweede thread gebeurd (en waarbij de globale variabelen worden
geupdate), een update uitvoeren van de GUI.
De functie die zorgt voor het updaten van de GUI, zit in dezelfde class
als de threadfunctie.
Hoe kan ik in mijn tweede thread de update member functie oproepen ?
Iets in de aard van c.update() werkt niet, want c is daar nog niet
gedefineerd.

-- 
Linux is a living thing, created in the sea of information.
Technical Details
Message-ID: <3A2FC058.68727D9B@student.kuleuven.ac.be>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-01!supernews.com!novia!feed2.onemain.com!feed1.onemain.com!newsfeed.icl.net!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mail
References: <3A2E7208.11982655@student.kuleuven.ac.be> <3A2E7C06.686FDDCE@easics.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,c74e054707a478eb
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2000-12-07 08:50:00 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-01!supernews.com!novia!feed2.onemain.com!feed1.onemain.com!newsfeed.icl.net!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mail
From: delirium <koen.muylkens@student.kuleuven.ac.be>
Newsgroups: be.comp.programming
Subject: Re: pthread in c++
Date: Thu, 07 Dec 2000 17:52:40 +0100
Organization: KULeuvenNet
Lines: 52
Message-ID: <3A2FC058.68727D9B@student.kuleuven.ac.be>
References: <3A2E7208.11982655@student.kuleuven.ac.be> <3A2E7C06.686FDDCE@easics.be>
NNTP-Posting-Host: marvin.kulnet.kuleuven.ac.be
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: naxos.belnet.be 976207800 17364 134.58.127.3 (7 Dec 2000 16:50:00 GMT)
X-Complaints-To: abuse@belnet.be
NNTP-Posting-Date: Thu, 7 Dec 2000 16:50:00 +0000 (UTC)
X-Mailer: Mozilla 4.75 [en] (X11; U; Linux 2.2.17-21mdk i586)
X-Accept-Language: en
Cache-Post-Path: marvin!unknown@kn-10-0-30-007.kotnet.kuleuven.ac.be
X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/)