You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by sgliu <sh...@sina.com> on 2006/11/09 03:57:49 UTC
VC & pthread.h
#ifndef ACTIVEMQ_CONCURRENT_MUTEX_H
#define ACTIVEMQ_CONCURRENT_MUTEX_H
// Includes.
#include <activemq/concurrent/Synchronizable.h>
#include <pthread.h>
namespace activemq{
namespace concurrent{
/**
* Creates a pthread_mutex_t object. The object is created
* such that successive locks from the same thread is allowed
* and will be successful.
* @author Nathan Mittler
* @see pthread_mutex_t
*/
class Mutex : public Synchronizable
{
public:
/**
* Constructor - creates and initializes the mutex.
*/
Mutex()
{
// Create an attributes object and initialize it.
// Assign the recursive attribute so that the same thread may
// lock this mutex repeatedly.
pthread_mutexattr_t attributes;
pthread_mutexattr_init( &attributes );
#if defined(__USE_UNIX98) || defined(__APPLE__)
pthread_mutexattr_settype( &attributes, PTHREAD_MUTEX_RECURSIVE );
#endif
// Initialize the mutex.
pthread_mutex_init( &mutex, &attributes );
// Destroy the attributes.
pthread_mutexattr_destroy( &attributes );
}
/**
* Destructor - destroys the mutex object.
*/
virtual ~Mutex()
{
// Unlock the mutex.
unlock();
// Destroy the mutex.
pthread_mutex_destroy( &mutex );
}
/**
* Locks the object.
* @return true if the lock was successful, otherwise false.
*/
virtual bool lock()
{
return pthread_mutex_lock( &mutex ) == 0;
}
/**
* Unlocks the object.
* @return true if the unlock was successful, otherwise false.
*/
virtual bool unlock()
{
return pthread_mutex_unlock( &mutex ) == 0;
}
private: // Data
/**
* The mutex object.
*/
pthread_mutex_t mutex;
};
}}
#endif // ACTIVEMQ_CONCURRENT_MUTEX_H
I compile these codes by Visual Studio 2005 C++ (Windows XP Sp2)
fatal error C1083: can not open this file :“pthread.h”: No such file or
directory
please help me
--
View this message in context: http://www.nabble.com/VC---pthread.h-tf2599406.html#a7251617
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.