/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
class XMLTOOL_API Thread
{
MAKE_NONCOPYABLE(Thread);
- public:
+ protected:
Thread() {}
+ public:
virtual ~Thread() {}
/**
*
* @param start_routine the function to execute on the thread
* @param arg a parameter for the start routine
+ * @param stacksize size of stack to use, or 0 for default
* @return the created and running thread object
*/
- static Thread* create(void* (*start_routine)(void*), void* arg);
+ static Thread* create(void* (*start_routine)(void*), void* arg, size_t stacksize=0);
/**
* Exits a thread gracefully.
class XMLTOOL_API ThreadKey
{
MAKE_NONCOPYABLE(ThreadKey);
- public:
+ protected:
ThreadKey() {}
+ public:
virtual ~ThreadKey() {}
/**
class XMLTOOL_API Mutex
{
MAKE_NONCOPYABLE(Mutex);
- public:
+ protected:
Mutex() {}
+ public:
virtual ~Mutex() {}
/**
class XMLTOOL_API RWLock
{
MAKE_NONCOPYABLE(RWLock);
- public:
+ protected:
RWLock() {}
+ public:
virtual ~RWLock() {}
/**
class XMLTOOL_API CondWait
{
MAKE_NONCOPYABLE(CondWait);
- public:
+ protected:
CondWait() {}
+ public:
virtual ~CondWait() {}
/**