Boost logo

Boost Users :

From: Gabriel Ki (gabeki_corp_at_[hidden])
Date: 2006-12-12 16:10:14


Hi, I am just trying the boost threads example from the link. #include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp> #include <boost/thread/tss.hpp> #include <iostream> boost::mutex io_mutex; boost::thread_specific_ptr<int> ptr; struct count { count(int id) : id(id) { } void operator()() { if (ptr.get() == 0) ptr.reset(new int(0)); for (int i = 0; i < 10; ++i) { (*ptr)++; boost::mutex::scoped_lock lock(io_mutex); std::cout << id << ": " << *ptr << std::endl; } } int id; }; int main(int argc, char* argv[]) { boost::thread thrd1(count(1)); boost::thread thrd2(count(2)); thrd1.join(); thrd2.join(); return 0; }// Output $ ./testme 10591400: 1 10591400: 2 10591400: 3 10591400: 4 10591400: 5 10591400: 6 10591400: 7 10591400: 8 10591400: 9 10591400: 10 Segmentation fault I have a few questions. 1) Why is id copied incorrectly in operator()? 2) Why does the count object get copied so many times? (i tried to write a copy constructor into count to see the id value) 3) I tried to add setstacksize in boost code and recompile. Is it a better way to do it? Thanks in advance. Gabriel ----- Original Message ---- From: Moshe Matitya <Moshe.Matitya_at_[hidden]> To: boost-users_at_[hidden] Sent: Tuesday, December 12, 2006 3:40:03 AM Subject: Re: [Boost-users] HowTo Pass arguments to boost threads? Forever Kid wrote: > > What is the method boost prefers to pass arguments to boost > threads? (such as a pointer to some class > object) > > I saw the class thread_specific_ptr. > Is thread_specific_ptr designed for this purpose? > > Is there a recommended site with boost examples to check out? > Boost has good documentation, although I prefer to learn by > example and use strict documentation as I become more experienced. > > Thanks much, > Graham Take a look this introductory article on Boost.Threads by Bill Kempf: http://www.ddj.com/184401518 It addresses the question you're asking in a very clear, straightforward manner, with examples. Moshe _______________________________________________ Boost-users mailing list Boost-users_at_[hidden] http://lists.boost.org/mailman/listinfo.cgi/boost-users ____________________________________________________________________________________ Do you Yahoo!? Everyone is raving about the all-new Yahoo! Mail beta. http://new.mail.yahoo.com



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net