You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by sgliu <sh...@sina.com> on 2006/11/09 04:38:12 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-tf2599508.html#a7251912
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
RE: VC & pthread.h
Posted by Timothy Bish <ta...@twcny.rr.com>.
Where did this file come from? Its not from activemq-cpp trunk as that one
has ifdef around 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-
> tf2599508.html#a7251912
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.