Merge pull request #1666 from erwincoumans/master
posix shared memory lsMemory release function
This commit is contained in:
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
void ExampleBrowserThreadFunc(void* userPtr,void* lsMemory);
|
void ExampleBrowserThreadFunc(void* userPtr,void* lsMemory);
|
||||||
void* ExampleBrowserMemoryFunc();
|
void* ExampleBrowserMemoryFunc();
|
||||||
|
void ExampleBrowserMemoryReleaseFunc(void* ptr);
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
//#include "BulletMultiThreaded/PlatformDefinitions.h"
|
//#include "BulletMultiThreaded/PlatformDefinitions.h"
|
||||||
@@ -42,6 +44,7 @@ static b3ThreadSupportInterface* createExampleBrowserThreadSupport(int numThread
|
|||||||
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("testThreads",
|
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("testThreads",
|
||||||
ExampleBrowserThreadFunc,
|
ExampleBrowserThreadFunc,
|
||||||
ExampleBrowserMemoryFunc,
|
ExampleBrowserMemoryFunc,
|
||||||
|
ExampleBrowserMemoryReleaseFunc,
|
||||||
numThreads);
|
numThreads);
|
||||||
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
||||||
|
|
||||||
@@ -56,7 +59,7 @@ static b3ThreadSupportInterface* createExampleBrowserThreadSupport(int numThread
|
|||||||
|
|
||||||
b3ThreadSupportInterface* createExampleBrowserThreadSupport(int numThreads)
|
b3ThreadSupportInterface* createExampleBrowserThreadSupport(int numThreads)
|
||||||
{
|
{
|
||||||
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("testThreads",ExampleBrowserThreadFunc,ExampleBrowserMemoryFunc,numThreads);
|
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("testThreads",ExampleBrowserThreadFunc,ExampleBrowserMemoryFunc,ExampleBrowserMemoryReleaseFunc,numThreads);
|
||||||
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
||||||
return threadSupport;
|
return threadSupport;
|
||||||
|
|
||||||
@@ -303,6 +306,12 @@ void* ExampleBrowserMemoryFunc()
|
|||||||
return new ExampleBrowserThreadLocalStorage;
|
return new ExampleBrowserThreadLocalStorage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ExampleBrowserMemoryReleaseFunc(void* ptr)
|
||||||
|
{
|
||||||
|
ExampleBrowserThreadLocalStorage* p = (ExampleBrowserThreadLocalStorage*) ptr;
|
||||||
|
delete p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1032,6 +1032,11 @@ struct BulletMJCFImporterInternalData
|
|||||||
//todo
|
//todo
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case URDF_GEOM_CDF:
|
||||||
|
{
|
||||||
|
//todo
|
||||||
|
break;
|
||||||
|
}
|
||||||
case URDF_GEOM_CYLINDER:
|
case URDF_GEOM_CYLINDER:
|
||||||
case URDF_GEOM_CAPSULE:
|
case URDF_GEOM_CAPSULE:
|
||||||
{
|
{
|
||||||
@@ -2541,6 +2546,11 @@ class btCompoundShape* BulletMJCFImporter::convertLinkCollisionShapes( int linkI
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case URDF_GEOM_CDF:
|
||||||
|
{
|
||||||
|
//todo
|
||||||
|
break;
|
||||||
|
}
|
||||||
case URDF_GEOM_UNKNOWN:
|
case URDF_GEOM_UNKNOWN:
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
#include "../../OpenGLWindow/GLInstancingRenderer.h"
|
#include "../../OpenGLWindow/GLInstancingRenderer.h"
|
||||||
#include "../../OpenGLWindow/GLInstanceGraphicsShape.h"
|
#include "../../OpenGLWindow/GLInstanceGraphicsShape.h"
|
||||||
#include "btBulletDynamicsCommon.h"
|
//#include "btBulletDynamicsCommon.h"
|
||||||
|
#include "LinearMath/btVector3.h"
|
||||||
#include "../../OpenGLWindow/SimpleOpenGL3App.h"
|
#include "../../OpenGLWindow/SimpleOpenGL3App.h"
|
||||||
#include "Wavefront2GLInstanceGraphicsShape.h"
|
#include "Wavefront2GLInstanceGraphicsShape.h"
|
||||||
#include "../../OpenGLWindow/GLInstancingRenderer.h"
|
#include "../../OpenGLWindow/GLInstancingRenderer.h"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
void SampleThreadFunc(void* userPtr,void* lsMemory);
|
void SampleThreadFunc(void* userPtr,void* lsMemory);
|
||||||
void* SamplelsMemoryFunc();
|
void* SamplelsMemoryFunc();
|
||||||
|
void SamplelsMemoryReleaseFunc(void* ptr);
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
//#include "BulletMultiThreaded/PlatformDefinitions.h"
|
//#include "BulletMultiThreaded/PlatformDefinitions.h"
|
||||||
@@ -34,6 +34,7 @@ b3ThreadSupportInterface* createThreadSupport(int numThreads)
|
|||||||
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("testThreads",
|
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("testThreads",
|
||||||
SampleThreadFunc,
|
SampleThreadFunc,
|
||||||
SamplelsMemoryFunc,
|
SamplelsMemoryFunc,
|
||||||
|
SamplelsMemoryReleaseFunc,
|
||||||
numThreads);
|
numThreads);
|
||||||
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
||||||
|
|
||||||
@@ -47,7 +48,7 @@ b3ThreadSupportInterface* createThreadSupport(int numThreads)
|
|||||||
|
|
||||||
b3ThreadSupportInterface* createThreadSupport(int numThreads)
|
b3ThreadSupportInterface* createThreadSupport(int numThreads)
|
||||||
{
|
{
|
||||||
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("testThreads",SampleThreadFunc,SamplelsMemoryFunc,numThreads);
|
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("testThreads",SampleThreadFunc,SamplelsMemoryFunc,SamplelsMemoryReleaseFunc,numThreads);
|
||||||
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
||||||
return threadSupport;
|
return threadSupport;
|
||||||
|
|
||||||
@@ -155,7 +156,11 @@ void* SamplelsMemoryFunc()
|
|||||||
return new SampleThreadLocalStorage;
|
return new SampleThreadLocalStorage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SamplelsMemoryReleaseFunc(void* ptr)
|
||||||
|
{
|
||||||
|
SampleThreadLocalStorage* p = (SampleThreadLocalStorage*) ptr;
|
||||||
|
delete p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ void b3PosixThreadSupport::startThreads(ThreadConstructionInfo& threadConstructi
|
|||||||
spuStatus.m_mainSemaphore = m_mainSemaphore;
|
spuStatus.m_mainSemaphore = m_mainSemaphore;
|
||||||
spuStatus.m_lsMemory = threadConstructionInfo.m_lsMemoryFunc();
|
spuStatus.m_lsMemory = threadConstructionInfo.m_lsMemoryFunc();
|
||||||
spuStatus.m_userThreadFunc = threadConstructionInfo.m_userThreadFunc;
|
spuStatus.m_userThreadFunc = threadConstructionInfo.m_userThreadFunc;
|
||||||
spuStatus.threadUsed = 0;
|
spuStatus.m_lsMemoryReleaseFunc = threadConstructionInfo.m_lsMemoryReleaseFunc;
|
||||||
|
spuStatus.threadUsed = 0;
|
||||||
|
|
||||||
printf("started thread %d \n",i);
|
printf("started thread %d \n",i);
|
||||||
|
|
||||||
@@ -277,7 +278,12 @@ void b3PosixThreadSupport::stopThreads()
|
|||||||
destroySem(spuStatus.startSemaphore);
|
destroySem(spuStatus.startSemaphore);
|
||||||
printf("semaphore destroyed\n");
|
printf("semaphore destroyed\n");
|
||||||
checkPThreadFunction(pthread_join(spuStatus.thread,0));
|
checkPThreadFunction(pthread_join(spuStatus.thread,0));
|
||||||
delete spuStatus.m_lsMemory;
|
|
||||||
|
if (spuStatus.m_lsMemoryReleaseFunc)
|
||||||
|
{
|
||||||
|
spuStatus.m_lsMemoryReleaseFunc( spuStatus.m_lsMemory);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
printf("destroy main semaphore\n");
|
printf("destroy main semaphore\n");
|
||||||
destroySem(m_mainSemaphore);
|
destroySem(m_mainSemaphore);
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ subject to the following restrictions:
|
|||||||
|
|
||||||
typedef void (*b3PosixThreadFunc)(void* userPtr,void* lsMemory);
|
typedef void (*b3PosixThreadFunc)(void* userPtr,void* lsMemory);
|
||||||
typedef void* (*b3PosixlsMemorySetupFunc)();
|
typedef void* (*b3PosixlsMemorySetupFunc)();
|
||||||
|
typedef void (*b3PosixlsMemoryReleaseFunc)(void* ptr);
|
||||||
|
|
||||||
// b3PosixThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication
|
// b3PosixThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication
|
||||||
class b3PosixThreadSupport : public b3ThreadSupportInterface
|
class b3PosixThreadSupport : public b3ThreadSupportInterface
|
||||||
@@ -55,6 +56,8 @@ public:
|
|||||||
|
|
||||||
b3PosixThreadFunc m_userThreadFunc;
|
b3PosixThreadFunc m_userThreadFunc;
|
||||||
void* m_userPtr; //for taskDesc etc
|
void* m_userPtr; //for taskDesc etc
|
||||||
|
b3PosixlsMemoryReleaseFunc m_lsMemoryReleaseFunc;
|
||||||
|
|
||||||
void* m_lsMemory; //initialized using PosixLocalStoreMemorySetupFunc
|
void* m_lsMemory; //initialized using PosixLocalStoreMemorySetupFunc
|
||||||
|
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
@@ -83,12 +86,14 @@ public:
|
|||||||
ThreadConstructionInfo(const char* uniqueName,
|
ThreadConstructionInfo(const char* uniqueName,
|
||||||
b3PosixThreadFunc userThreadFunc,
|
b3PosixThreadFunc userThreadFunc,
|
||||||
b3PosixlsMemorySetupFunc lsMemoryFunc,
|
b3PosixlsMemorySetupFunc lsMemoryFunc,
|
||||||
|
b3PosixlsMemoryReleaseFunc lsMemoryReleaseFunc,
|
||||||
int numThreads=1,
|
int numThreads=1,
|
||||||
int threadStackSize=65535
|
int threadStackSize=65535
|
||||||
)
|
)
|
||||||
:m_uniqueName(uniqueName),
|
:m_uniqueName(uniqueName),
|
||||||
m_userThreadFunc(userThreadFunc),
|
m_userThreadFunc(userThreadFunc),
|
||||||
m_lsMemoryFunc(lsMemoryFunc),
|
m_lsMemoryFunc(lsMemoryFunc),
|
||||||
|
m_lsMemoryReleaseFunc(lsMemoryReleaseFunc),
|
||||||
m_numThreads(numThreads),
|
m_numThreads(numThreads),
|
||||||
m_threadStackSize(threadStackSize)
|
m_threadStackSize(threadStackSize)
|
||||||
{
|
{
|
||||||
@@ -98,6 +103,8 @@ public:
|
|||||||
const char* m_uniqueName;
|
const char* m_uniqueName;
|
||||||
b3PosixThreadFunc m_userThreadFunc;
|
b3PosixThreadFunc m_userThreadFunc;
|
||||||
b3PosixlsMemorySetupFunc m_lsMemoryFunc;
|
b3PosixlsMemorySetupFunc m_lsMemoryFunc;
|
||||||
|
b3PosixlsMemoryReleaseFunc m_lsMemoryReleaseFunc;
|
||||||
|
|
||||||
int m_numThreads;
|
int m_numThreads;
|
||||||
int m_threadStackSize;
|
int m_threadStackSize;
|
||||||
|
|
||||||
|
|||||||
@@ -289,6 +289,7 @@ void b3Win32ThreadSupport::startThreads(const Win32ThreadConstructionInfo& threa
|
|||||||
threadStatus.m_threadHandle = handle;
|
threadStatus.m_threadHandle = handle;
|
||||||
threadStatus.m_lsMemory = threadConstructionInfo.m_lsMemoryFunc();
|
threadStatus.m_lsMemory = threadConstructionInfo.m_lsMemoryFunc();
|
||||||
threadStatus.m_userThreadFunc = threadConstructionInfo.m_userThreadFunc;
|
threadStatus.m_userThreadFunc = threadConstructionInfo.m_userThreadFunc;
|
||||||
|
threadStatus.m_lsMemoryReleaseFunc = threadConstructionInfo.m_lsMemoryReleaseFunc;
|
||||||
|
|
||||||
printf("started %s thread %d with threadHandle %p\n",threadConstructionInfo.m_uniqueName,i,handle);
|
printf("started %s thread %d with threadHandle %p\n",threadConstructionInfo.m_uniqueName,i,handle);
|
||||||
|
|
||||||
@@ -313,7 +314,10 @@ void b3Win32ThreadSupport::stopThreads()
|
|||||||
WaitForSingleObject(threadStatus.m_eventCompletetHandle, INFINITE);
|
WaitForSingleObject(threadStatus.m_eventCompletetHandle, INFINITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete threadStatus.m_lsMemory;
|
if (threadStatus.m_lsMemoryReleaseFunc)
|
||||||
|
{
|
||||||
|
threadStatus.m_lsMemoryReleaseFunc(threadStatus.m_lsMemory);
|
||||||
|
}
|
||||||
|
|
||||||
threadStatus.m_userPtr = 0;
|
threadStatus.m_userPtr = 0;
|
||||||
SetEvent(threadStatus.m_eventStartHandle);
|
SetEvent(threadStatus.m_eventStartHandle);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ subject to the following restrictions:
|
|||||||
|
|
||||||
typedef void (*b3Win32ThreadFunc)(void* userPtr,void* lsMemory);
|
typedef void (*b3Win32ThreadFunc)(void* userPtr,void* lsMemory);
|
||||||
typedef void* (*b3Win32lsMemorySetupFunc)();
|
typedef void* (*b3Win32lsMemorySetupFunc)();
|
||||||
|
typedef void (*b3Win32lsMemoryReleaseFunc)(void*);
|
||||||
|
|
||||||
|
|
||||||
///b3Win32ThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication
|
///b3Win32ThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication
|
||||||
@@ -43,6 +44,8 @@ public:
|
|||||||
void* m_userPtr; //for taskDesc etc
|
void* m_userPtr; //for taskDesc etc
|
||||||
void* m_lsMemory; //initialized using Win32LocalStoreMemorySetupFunc
|
void* m_lsMemory; //initialized using Win32LocalStoreMemorySetupFunc
|
||||||
|
|
||||||
|
b3Win32lsMemoryReleaseFunc m_lsMemoryReleaseFunc;
|
||||||
|
|
||||||
void* m_threadHandle; //this one is calling 'Win32ThreadFunc'
|
void* m_threadHandle; //this one is calling 'Win32ThreadFunc'
|
||||||
|
|
||||||
void* m_eventStartHandle;
|
void* m_eventStartHandle;
|
||||||
@@ -67,12 +70,14 @@ public:
|
|||||||
Win32ThreadConstructionInfo(const char* uniqueName,
|
Win32ThreadConstructionInfo(const char* uniqueName,
|
||||||
b3Win32ThreadFunc userThreadFunc,
|
b3Win32ThreadFunc userThreadFunc,
|
||||||
b3Win32lsMemorySetupFunc lsMemoryFunc,
|
b3Win32lsMemorySetupFunc lsMemoryFunc,
|
||||||
|
b3Win32lsMemoryReleaseFunc lsMemoryReleaseFunc,
|
||||||
int numThreads=1,
|
int numThreads=1,
|
||||||
int threadStackSize=65535
|
int threadStackSize=65535
|
||||||
)
|
)
|
||||||
:m_uniqueName(uniqueName),
|
:m_uniqueName(uniqueName),
|
||||||
m_userThreadFunc(userThreadFunc),
|
m_userThreadFunc(userThreadFunc),
|
||||||
m_lsMemoryFunc(lsMemoryFunc),
|
m_lsMemoryFunc(lsMemoryFunc),
|
||||||
|
m_lsMemoryReleaseFunc(lsMemoryReleaseFunc),
|
||||||
m_numThreads(numThreads),
|
m_numThreads(numThreads),
|
||||||
m_threadStackSize(threadStackSize),
|
m_threadStackSize(threadStackSize),
|
||||||
m_priority(0)
|
m_priority(0)
|
||||||
@@ -83,6 +88,7 @@ public:
|
|||||||
const char* m_uniqueName;
|
const char* m_uniqueName;
|
||||||
b3Win32ThreadFunc m_userThreadFunc;
|
b3Win32ThreadFunc m_userThreadFunc;
|
||||||
b3Win32lsMemorySetupFunc m_lsMemoryFunc;
|
b3Win32lsMemorySetupFunc m_lsMemoryFunc;
|
||||||
|
b3Win32lsMemoryReleaseFunc m_lsMemoryReleaseFunc;
|
||||||
int m_numThreads;
|
int m_numThreads;
|
||||||
int m_threadStackSize;
|
int m_threadStackSize;
|
||||||
int m_priority;
|
int m_priority;
|
||||||
|
|||||||
@@ -11,6 +11,8 @@
|
|||||||
#include "../MultiThreading/b3ThreadSupportInterface.h"
|
#include "../MultiThreading/b3ThreadSupportInterface.h"
|
||||||
void UDPThreadFunc(void* userPtr, void* lsMemory);
|
void UDPThreadFunc(void* userPtr, void* lsMemory);
|
||||||
void* UDPlsMemoryFunc();
|
void* UDPlsMemoryFunc();
|
||||||
|
void UDPlsMemoryReleaseFunc(void* ptr);
|
||||||
|
|
||||||
bool gVerboseNetworkMessagesClient = false;
|
bool gVerboseNetworkMessagesClient = false;
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
@@ -21,6 +23,7 @@ b3ThreadSupportInterface* createUDPThreadSupport(int numThreads)
|
|||||||
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("UDPThread",
|
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("UDPThread",
|
||||||
UDPThreadFunc,
|
UDPThreadFunc,
|
||||||
UDPlsMemoryFunc,
|
UDPlsMemoryFunc,
|
||||||
|
UDPlsMemoryReleaseFunc,
|
||||||
numThreads);
|
numThreads);
|
||||||
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
||||||
|
|
||||||
@@ -34,7 +37,7 @@ b3ThreadSupportInterface* createUDPThreadSupport(int numThreads)
|
|||||||
|
|
||||||
b3ThreadSupportInterface* createUDPThreadSupport(int numThreads)
|
b3ThreadSupportInterface* createUDPThreadSupport(int numThreads)
|
||||||
{
|
{
|
||||||
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("UDPThread", UDPThreadFunc, UDPlsMemoryFunc, numThreads);
|
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("UDPThread", UDPThreadFunc, UDPlsMemoryFunc,UDPlsMemoryReleaseFunc, numThreads);
|
||||||
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
||||||
return threadSupport;
|
return threadSupport;
|
||||||
|
|
||||||
@@ -436,6 +439,11 @@ void* UDPlsMemoryFunc()
|
|||||||
return new UDPThreadLocalStorage;
|
return new UDPThreadLocalStorage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UDPlsMemoryReleaseFunc(void* ptr)
|
||||||
|
{
|
||||||
|
UDPThreadLocalStorage* p = (UDPThreadLocalStorage*) ptr;
|
||||||
|
delete p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9693,10 +9693,13 @@ void PhysicsServerCommandProcessor::stepSimulationRealTime(double dtInSec,const
|
|||||||
void PhysicsServerCommandProcessor::resetSimulation()
|
void PhysicsServerCommandProcessor::resetSimulation()
|
||||||
{
|
{
|
||||||
//clean up all data
|
//clean up all data
|
||||||
|
|
||||||
|
#ifndef SKIP_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD
|
||||||
if (m_data && m_data->m_dynamicsWorld)
|
if (m_data && m_data->m_dynamicsWorld)
|
||||||
{
|
{
|
||||||
m_data->m_dynamicsWorld->getWorldInfo().m_sparsesdf.Reset();
|
m_data->m_dynamicsWorld->getWorldInfo().m_sparsesdf.Reset();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if (m_data && m_data->m_guiHelper)
|
if (m_data && m_data->m_guiHelper)
|
||||||
{
|
{
|
||||||
m_data->m_guiHelper->removeAllGraphicsInstances();
|
m_data->m_guiHelper->removeAllGraphicsInstances();
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ static void saveCurrentSettingsVR(const btVector3& VRTeleportPos1)
|
|||||||
bool gDebugRenderToggle = false;
|
bool gDebugRenderToggle = false;
|
||||||
void MotionThreadFunc(void* userPtr,void* lsMemory);
|
void MotionThreadFunc(void* userPtr,void* lsMemory);
|
||||||
void* MotionlsMemoryFunc();
|
void* MotionlsMemoryFunc();
|
||||||
|
void MotionlsMemoryReleaseFunc(void* ptr);
|
||||||
#define MAX_MOTION_NUM_THREADS 1
|
#define MAX_MOTION_NUM_THREADS 1
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@@ -150,6 +151,7 @@ b3ThreadSupportInterface* createMotionThreadSupport(int numThreads)
|
|||||||
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("MotionThreads",
|
b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("MotionThreads",
|
||||||
MotionThreadFunc,
|
MotionThreadFunc,
|
||||||
MotionlsMemoryFunc,
|
MotionlsMemoryFunc,
|
||||||
|
MotionlsMemoryReleaseFunc,
|
||||||
numThreads);
|
numThreads);
|
||||||
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo);
|
||||||
|
|
||||||
@@ -163,7 +165,7 @@ b3ThreadSupportInterface* createMotionThreadSupport(int numThreads)
|
|||||||
|
|
||||||
b3ThreadSupportInterface* createMotionThreadSupport(int numThreads)
|
b3ThreadSupportInterface* createMotionThreadSupport(int numThreads)
|
||||||
{
|
{
|
||||||
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("MotionThreads",MotionThreadFunc,MotionlsMemoryFunc,numThreads);
|
b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("MotionThreads",MotionThreadFunc,MotionlsMemoryFunc,MotionlsMemoryReleaseFunc,numThreads);
|
||||||
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo);
|
||||||
return threadSupport;
|
return threadSupport;
|
||||||
|
|
||||||
@@ -486,6 +488,12 @@ void* MotionlsMemoryFunc()
|
|||||||
return new MotionThreadLocalStorage;
|
return new MotionThreadLocalStorage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MotionlsMemoryReleaseFunc(void* ptr)
|
||||||
|
{
|
||||||
|
MotionThreadLocalStorage* p = (MotionThreadLocalStorage*) ptr;
|
||||||
|
delete p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct UserDebugDrawLine
|
struct UserDebugDrawLine
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ bool PhysicsServerSharedMemory::connectSharedMemory( struct GUIHelperInterface*
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
b3Error("Cannot connect to shared memory");
|
//b3Error("Cannot connect to shared memory");
|
||||||
m_data->m_areConnected[block] = false;
|
m_data->m_areConnected[block] = false;
|
||||||
}
|
}
|
||||||
} while (counter++ < 10 && !m_data->m_areConnected[block]);
|
} while (counter++ < 10 && !m_data->m_areConnected[block]);
|
||||||
|
|||||||
@@ -23,7 +23,11 @@
|
|||||||
typedef unsigned long long int smUint64_t;
|
typedef unsigned long long int smUint64_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE (8*1024*1024)
|
#ifdef __APPLE__
|
||||||
|
#define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE (512*1024)
|
||||||
|
#else
|
||||||
|
#define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE (8*1024*1024)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SHARED_MEMORY_SERVER_TEST_C
|
#define SHARED_MEMORY_SERVER_TEST_C
|
||||||
#define MAX_DEGREE_OF_FREEDOM 128
|
#define MAX_DEGREE_OF_FREEDOM 128
|
||||||
|
|||||||
Reference in New Issue
Block a user