[gameprogrammer] WaitFOrMultipleObjects on Linux?

  • From: Kevin Jenkins <gameprogrammer@xxxxxxxxxx>
  • To: gameprogrammer@xxxxxxxxxxxxx
  • Date: Sat, 29 Aug 2009 11:31:52 -0700

Anyone know how to fill this out? I put my guesses in, with ??? when I didn't know


   pthread_cond_t eventList[4];
   pthread_mutex_t hMutex[4];

#include "SignaledEvent.h"
#include "RakAssert.h"

SignaledEvent::SignaledEvent()
{
   numEvents=0;
}
SignaledEvent::~SignaledEvent()
{
   CloseEvents();
}

void SignaledEvent::InitEvents(int numberOfEvents)
{
   numEvents=numberOfEvents;
   RakAssert(numberOfEvents<4);
   for (int i=0; i < numEvents; i++)
   {
#ifdef _WIN32
       eventList[i]=CreateEvent(0, true, false, 0);
#else
       pthread_cond_init(&eventList[i], NULL);
#endif
   }
}

void SignaledEvent::CloseEvents(void)
{
   for (int i=0; i < numEvents; i++)
   {
#ifdef _WIN32
       CloseHandle(eventList[i]);
#else
       pthread_cond_destroy(&eventList[i]);
       pthread_mutex_destroy(&eventList[i]);
#endif
   }
   numEvents=0;
}

void SignaledEvent::ResetEvent(int index)
{
#ifdef _WIN32
   ::ResetEvent(eventList[index]);
#else
   ???
#endif
}

void SignaledEvent::SetEvent(int index)
{
#ifdef _WIN32
   ::SetEvent(eventList[index]);
#else
   ???
#endif
}

void SignaledEvent::ResetEvents(void)
{
   for (int i=0; i < numEvents; i++)
   {
#ifdef _WIN32
       ::ResetEvent(eventList[i]);
#else
       ???
#endif
   }
}

void SignaledEvent::WaitOnEvents(int timeoutMs)
{
#ifdef _WIN32
   WaitForMultipleObjects(
       2,
       eventList,
       false,
       timeoutMs);
#else
   ???
   pthread_cond_wait( &eventList[i], &hMutex[i] );
#endif
}

---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html


Other related posts: