Re: pthread memory leaks
In article <b5371b7f-e6cb-4da7-92db-87944822be69@s16g2000prf.googlegroups.com>,
jakash3 <jakashthree@gmail.com> wrote:
On May 30, 5:02?pm, Ian Collins <ian-n...@hotmail.com> wrote:
Have you looked at boost thread?
Yes, It doesn't appear to have thread suspension. I hope to implement
this for my thread class:
Boost thread has designed decisions in its interface. I would say
that most of these design decisions are to encourage the users
to use multi-threading in a saner and safer manner than when starting
with the full low-level capabilities of pthread or Windows threads.
For example:
class Thread {
public:
#ifdef _WIN32
HANDLE tid;
#else
pthread_t tid;
#endif
void* (*sub)(void*);
Thread();
~Thread();
Thread(void* (*tfunc)(void*));
Thread& operator= (void* (*tfunc)(void*));
Thread& operator= (Thread t);
Please clarify what you intend here? Is this a normal assignment
operator? If so, what does it mean to "assign" an existing thread to
another?
You are defining an operator= without defining a copy-constructor
which is a typical no-no, unless you really can explain why.
If you define a copy-constructor, you also need to really understand
what it means.
Note: boost thread clearly define them as move operations, not copies.
And you would probably need to either pass by reference or need that
copy constructor.
bool operator!= (void* (*tfunc)(void*));
bool operator!= (Thread t);
bool operator== (void* (*tfunc)(void*));
bool operator== (Thread t);
bool start(void* param = 0);
void* term(void* (*quit)(void*) = 0, void* param = 0);
bool stop();
bool cont();
bool join(void ** ret);
};