add a b3Clock::usleep in PhysicsClientUDP to avoid clogging all resources
report more meaningful connection status for UDP.
This commit is contained in:
@@ -322,13 +322,10 @@ void UDPThreadFunc(void* userPtr, void* lsMemory)
|
|||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
b3Clock::usleep(0);
|
||||||
|
|
||||||
deltaTimeInSeconds += double(clock.getTimeMicroseconds()) / 1000000.;
|
deltaTimeInSeconds += double(clock.getTimeMicroseconds()) / 1000000.;
|
||||||
|
|
||||||
if (deltaTimeInSeconds<(1. / 5000.))
|
|
||||||
{
|
|
||||||
// b3Clock::usleep(250);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
|
||||||
clock.reset();
|
clock.reset();
|
||||||
@@ -441,6 +438,10 @@ UdpNetworkedPhysicsProcessor::~UdpNetworkedPhysicsProcessor()
|
|||||||
|
|
||||||
bool UdpNetworkedPhysicsProcessor::processCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes)
|
bool UdpNetworkedPhysicsProcessor::processCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes)
|
||||||
{
|
{
|
||||||
|
if(gVerboseNetworkMessagesClient)
|
||||||
|
{
|
||||||
|
printf("PhysicsClientUDP::processCommand\n");
|
||||||
|
}
|
||||||
// int sz = sizeof(SharedMemoryCommand);
|
// int sz = sizeof(SharedMemoryCommand);
|
||||||
int timeout = 1024 * 1024 * 1024;
|
int timeout = 1024 * 1024 * 1024;
|
||||||
|
|
||||||
@@ -475,6 +476,10 @@ bool UdpNetworkedPhysicsProcessor::processCommand(const struct SharedMemoryComma
|
|||||||
|
|
||||||
bool UdpNetworkedPhysicsProcessor::receiveStatus(struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes)
|
bool UdpNetworkedPhysicsProcessor::receiveStatus(struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes)
|
||||||
{
|
{
|
||||||
|
if (gVerboseNetworkMessagesClient)
|
||||||
|
{
|
||||||
|
printf("UdpNetworkedPhysicsProcessor::receiveStatus\n");
|
||||||
|
}
|
||||||
bool hasStatus = false;
|
bool hasStatus = false;
|
||||||
if (m_data->m_hasStatus)
|
if (m_data->m_hasStatus)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,11 +10,19 @@ b3PhysicsClientHandle b3ConnectPhysicsUDP(const char* hostName, int port)
|
|||||||
|
|
||||||
UdpNetworkedPhysicsProcessor* udp = new UdpNetworkedPhysicsProcessor(hostName, port);
|
UdpNetworkedPhysicsProcessor* udp = new UdpNetworkedPhysicsProcessor(hostName, port);
|
||||||
|
|
||||||
PhysicsDirect* direct = new PhysicsDirect(udp,true);
|
PhysicsDirect* direct = new PhysicsDirect(udp, true);
|
||||||
|
|
||||||
bool connected;
|
bool connected;
|
||||||
connected = direct->connect();
|
connected = direct->connect();
|
||||||
printf("direct!\n");
|
if (connected)
|
||||||
|
{
|
||||||
|
printf("b3ConnectPhysicsUDP connected successfully.\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("b3ConnectPhysicsUDP NOT connected.\n");
|
||||||
|
|
||||||
|
}
|
||||||
return (b3PhysicsClientHandle)direct;
|
return (b3PhysicsClientHandle)direct;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user