Author: tabish
Date: Thu Sep 17 21:13:16 2009
New Revision: 816384
URL: http://svn.apache.org/viewvc?rev=816384&view=rev
Log:
Updates for building on Windows
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionHandle.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionImpl.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/util/Map.h
activemq/activemq-cpp/trunk/activemq-cpp/vs2005-build/vs2005-activemq.vcproj
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionHandle.h
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionHandle.h?rev=816384&r1=816383&r2=816384&view=diff
==============================================================================
---
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionHandle.h
(original)
+++
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionHandle.h
Thu Sep 17 21:13:16 2009
@@ -35,7 +35,7 @@
~ConditionHandle() {
CloseHandle( semaphore );
- DestroyCriticalSection( &mutex );
+ ::DeleteCriticalSection( &criticalSection );
}
// The actual condition object
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionImpl.cpp
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionImpl.cpp?rev=816384&r1=816383&r2=816384&view=diff
==============================================================================
---
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionImpl.cpp
(original)
+++
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/internal/util/concurrent/windows/ConditionImpl.cpp
Thu Sep 17 21:13:16 2009
@@ -103,7 +103,7 @@
do {
- res = WaitForSingleObject( condition->semaphore, mills );
+ res = WaitForSingleObject( condition->semaphore, (DWORD)mills );
EnterCriticalSection( &condition->criticalSection );
@@ -114,7 +114,7 @@
condition->numWaiting--;
break;
} else {
- wake = 1;
+ doWake = true;
}
}
else if( res != WAIT_OBJECT_0 ) {
@@ -171,23 +171,23 @@
////////////////////////////////////////////////////////////////////////////////
void ConditionImpl::notifyAll( ConditionHandle* condition ) {
- unsigned int numWake = 0;
-
- EnterCriticalSection( &condition->criticalSection );
+ try {
+ unsigned int numWake = 0;
- if( condition->numWaiting > condition->numWake ) {
- numWake = condition->numWaiting - condition->numWake;
- condition->numWake = cond->numWaiting;
- condition->generation++;
- }
+ EnterCriticalSection( &condition->criticalSection );
- LeaveCriticalSection( &condition->criticalSection );
+ if( condition->numWaiting > condition->numWake ) {
+ numWake = condition->numWaiting - condition->numWake;
+ condition->numWake = condition->numWaiting;
+ condition->generation++;
+ }
- if( numWake ) {
- ReleaseSemaphore( condition->semaphore, numWake, NULL );
- }
+ LeaveCriticalSection( &condition->criticalSection );
- if( pthread_cond_broadcast( &condition->condition ) ) {
+ if( numWake ) {
+ ReleaseSemaphore( condition->semaphore, numWake, NULL );
+ }
+ } catch(...) {
throw RuntimeException(
__FILE__, __LINE__, "Failed to broadcast signal OS Condition
object." );
}
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/util/Map.h
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/util/Map.h?rev=816384&r1=816383&r2=816384&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/util/Map.h
(original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/util/Map.h Thu Sep
17 21:13:16 2009
@@ -18,6 +18,7 @@
#ifndef _DECAF_UTIL_MAP_H_
#define _DECAF_UTIL_MAP_H_
+#include <functional>
#include <vector>
#include <decaf/lang/exceptions/UnsupportedOperationException.h>
#include <decaf/lang/exceptions/NoSuchElementException.h>
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/vs2005-build/vs2005-activemq.vcproj
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/vs2005-build/vs2005-activemq.vcproj?rev=816384&r1=816383&r2=816384&view=diff
==============================================================================
---
activemq/activemq-cpp/trunk/activemq-cpp/vs2005-build/vs2005-activemq.vcproj
(original)
+++
activemq/activemq-cpp/trunk/activemq-cpp/vs2005-build/vs2005-activemq.vcproj
Thu Sep 17 21:13:16 2009
@@ -22611,6 +22611,14 @@
Name="concurrent"
>
<File
+
RelativePath="..\src\main\decaf\internal\util\concurrent\ConditionImpl.h"
+ >
+ </File>
+ <File
+
RelativePath="..\src\main\decaf\internal\util\concurrent\MutexImpl.h"
+ >
+ </File>
+ <File
RelativePath="..\src\main\decaf\internal\util\concurrent\SynchronizableImpl.cpp"
>
</File>
@@ -22618,6 +22626,26 @@
RelativePath="..\src\main\decaf\internal\util\concurrent\SynchronizableImpl.h"
>
</File>
+ <Filter
+ Name="windows"
+ >
+ <File
+
RelativePath="..\src\main\decaf\internal\util\concurrent\windows\ConditionHandle.h"
+ >
+ </File>
+ <File
+
RelativePath="..\src\main\decaf\internal\util\concurrent\windows\ConditionImpl.cpp"
+ >
+ </File>
+ <File
+
RelativePath="..\src\main\decaf\internal\util\concurrent\windows\MutexHandle.h"
+ >
+ </File>
+ <File
+
RelativePath="..\src\main\decaf\internal\util\concurrent\windows\MutexImpl.cpp"
+ >
+ </File>
+ </Filter>
</Filter>
</Filter>
<Filter
@@ -22659,6 +22687,10 @@
Name="windows"
>
<File
+
RelativePath="..\src\main\decaf\internal\lang\windows\ThreadHandle.h"
+ >
+ </File>
+ <File
RelativePath="..\src\main\decaf\internal\lang\windows\ThreadImpl.cpp"
>
</File>