Esempio n. 1
0
int _tmain(int argc, _TCHAR* argv[])
{
	try
	{
		AC::Event Event(FALSE, TRUE);

		AC::Thread Thread1(new WaitEvent(Event));
		Thread1.Start();

		AC::Thread Thread2(new WaitEvent(Event));
		Thread2.Start();

		Sleep(2000);

		Event.SetEvent();

		Thread1.Wait();
		Thread2.Wait();

		std::vector<HANDLE> Objects;
		Objects.push_back(Thread1);
		Objects.push_back(Thread2);
		Objects.push_back(Event);

		int ret = WaitForMultipleObjects(Objects.size(), &Objects[0], TRUE, INFINITE);
		assert(ret == WAIT_OBJECT_0);
	}
	catch(std::exception& ex)
	{
		fprintf(stderr, "Exception: %s\n", ex.what());
	}

	return 0;
}
Esempio n. 2
0
int main() {
  pthread_barrier_init(&B, 0, 2);
  pthread_t t;
  pthread_create(&t, NULL, Thread1, NULL);
  Thread2(0);
  pthread_join(t, NULL);
  return 0;
}
Esempio n. 3
0
int main() {
  pthread_t t;
  pthread_create(&t, NULL, Thread1, NULL);
  Thread2(0);
  pthread_join(t, NULL);
  pthread_barrier_destroy(&B);
  return 0;
}
Esempio n. 4
0
int main() {
  mem = (int*)malloc(100);
  pthread_mutex_init(&mtx, 0);
  pthread_t t;
  pthread_create(&t, NULL, Thread1, NULL);
  Thread2(0);
  pthread_join(t, NULL);
  pthread_mutex_destroy(&mtx);
  return 0;
}