C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

multicore / multithread safe smart pointers

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Hendrik Wendler
Guest





PostPosted: Mon May 15, 2006 4:46 am    Post subject: multicore / multithread safe smart pointers Reply with quote



Hi,

ich hab in meinem programm einige
im netz zu findende smart pointer
implementierungen ausprobiert.
Eigentlich war keine bisher ausdrücklich
thread safe. sobald mehr als eine cpu
am werk ist - also wenn es ernst wird =)
dann wackeln die referenzzähler.

jetzt wüsste ich noch die boost lib,
aber das wäre ein verhältnis 80:1
lib und applikation.

ist denn jemand ein (getesteter!)
1 - header - multithread - safe
smart pointer bekannt?

besten gruss + vielen dank,
hendrik

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Andreas Huennebeck
Guest





PostPosted: Mon May 15, 2006 1:47 pm    Post subject: Re: multicore / multithread safe smart pointers Reply with quote



Hendrik Wendler wrote:

Quote:
ich hab in meinem programm einige
im netz zu findende smart pointer
implementierungen ausprobiert.
Eigentlich war keine bisher ausdrücklich
thread safe. sobald mehr als eine cpu
am werk ist - also wenn es ernst wird =)
dann wackeln die referenzzähler.

jetzt wüsste ich noch die boost lib,
aber das wäre ein verhältnis 80:1
lib und applikation.

ist denn jemand ein (getesteter!)
1 - header - multithread - safe
smart pointer bekannt?

AFAIR beschreibt Andrei Alexandrescu in seinem Buch
"Modern C++ Design" eine solche Klasse. Sie gehört
wohl zur LOKI Bibliothek: http://sourceforge.net/projects/loki-lib/

Tschau
Andreas
--
Andreas Hünnebeck | email: acmh (AT) gmx (DOT) de
----- privat ---- | www : http://www.huennebeck-online.de
Fax/Anrufbeantworter: 0721/151-284301
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc
PGP-Key: http://www.huennebeck-online.de/public_keys/pgp_andreas.asc

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Hendrik Wendler
Guest





PostPosted: Wed May 17, 2006 4:31 pm    Post subject: Re: multicore / multithread safe smart pointers Reply with quote



Quote:
AFAIR beschreibt Andrei Alexandrescu in seinem Buch
"Modern C++ Design" eine solche Klasse. Sie gehört
wohl zur LOKI Bibliothek: http://sourceforge.net/projects/loki-lib/


tausend dank, ich habs mir gleich
angesehen. die innereien der smartpointer.h
sind beeindruckend ... wirklich ...

aber leider ist das auch eine ganze lib,
mit vielen inneren dependencies.

für die referenzzähler gibts unter
win32 interlockedincrement(), aber das
ist ja eine api-funktion.
ich habe dann etwas geforscht, wie diese
funktion implementiert ist, und mich
etwas gegruselt. unter win95 wird das
gesamte OS angehalten und dann die
OP in geschütztem speicher ausgeführt.

(ich hab jetzt nicht den assembler gelesen -
irgnedwo bei "the old new thing", einem ms
blog gibts dazu eine diskussion)

naja, wenns nicht anders geht?
wie hiesse denn sowas unter osx bzw.
linux?

besten gruss,
hendrik

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Andreas Huennebeck
Guest





PostPosted: Thu May 18, 2006 12:23 pm    Post subject: Re: multicore / multithread safe smart pointers Reply with quote

Hendrik Wendler wrote:

Quote:

AFAIR beschreibt Andrei Alexandrescu in seinem Buch
"Modern C++ Design" eine solche Klasse. Sie gehört
wohl zur LOKI Bibliothek: http://sourceforge.net/projects/loki-lib/


tausend dank, ich habs mir gleich
angesehen. die innereien der smartpointer.h
sind beeindruckend ... wirklich ...

Das Buch auch - sehr lesenswert.

Quote:
aber leider ist das auch eine ganze lib,
mit vielen inneren dependencies.

Vielleicht kannst Du ja einfach die Sachen, die Dich interessieren,
herausklauben.

Quote:
für die referenzzähler gibts unter
win32 interlockedincrement(), aber das
ist ja eine api-funktion. [..]
wie hiesse denn sowas unter osx bzw.
linux?

Unter Unix im allgemeinen verwendet man dafür Semaphoren,
das sind sozusagen atomare Zähler: man semget, semctl, semop

In der Omnithread Library gibts auch solche Semaphoren, die
sind plattformunabhängig:
http://omniorb.sourceforge.net/omni40/omnithread.html

Bei den Boost-Libraries findet sich bestimmt auch was:
http://www.boost.org

Tschau
Andreas
--
Andreas Hünnebeck | email: acmh (AT) gmx (DOT) de
----- privat ---- | www : http://www.huennebeck-online.de
Fax/Anrufbeantworter: 0721/151-284301
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc
PGP-Key: http://www.huennebeck-online.de/public_keys/pgp_andreas.asc

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Hubert Schmid
Guest





PostPosted: Sat May 20, 2006 12:18 pm    Post subject: Re: multicore / multithread safe smart pointers Reply with quote

Hendrik Wendler <hendrik--nospam--@mxwendler.de> writes:

Quote:
ist denn jemand ein (getesteter!) 1 - header - multithread - safe
smart pointer bekannt?

Hast du schon mal geschaut, ob bei deinem Übersetzer
std::tr1::shared_ptr mitgeliefert wird?

Beim aktuellen GCC ist er beispielsweise dabei. Dort ist auch der
größte Teil tatsächlich in einem Header (tr1/boost_shared_ptr.h). Wenn
ich das richtig sehe, dann werden nur ein paar zusätzliche Funktionen
für die Synchronisation verwendet.

Gruß, Hubert

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.