• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Using MIG RPC between 2 threads inside a process
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Using MIG RPC between 2 threads inside a process


  • Subject: Using MIG RPC between 2 threads inside a process
  • From: Dario <email@hidden>
  • Date: Thu, 16 Sep 2004 10:12:25 +0200

Moreover how can I tranfers messages between the 2 involved threads using condition variables? I though that it would need to use an intermediate queue of fifo? Using the Mac IPC allows directly to do that...

Do it in the process' memory? You have a pthread mutex, it can protect a private queue in addition to the condition variable.

Do you mean using "pthread_mutex" and "pthread_cond_signal/wait" API? How can this be done?



#include <pthread.h>

pthread_mutex_t lock;
pthread_cond_t cond;

pthread_cond_init( &cond, NULL );
pthread_mutex_init( &lock, NULL );


server: create client thread pthread_mutex_lock( &lock ); while(true) { pthread_cond_wait( &cond, &lock ); do something what you need }

	client:
while( true ) {
	pthread_mutex_lock( &lock );
	Put some data in a global varibale or so.
	pthread_cond_signal( &cond );
}

Or can be resolved by using a queue structure with synchronized access and verification (still with mutexes), I have an example if you need it. with this code as you can see you can send only one job and the client will block until the end of the previous on the server thread


In fact, the condition variable is only interesting when the queue runs dry. This is always more efficient than trying to queue the memory in the kernel. Besides, you are limited to a queue depth of 16 (default 5) when you use Mach message queues. Not really much of a queue to store things in, when you think about it.

OK... Thanks

Stephane

_______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Using MIG RPC between 2 threads inside a process
      • From: Steve Checkoway <email@hidden>
  • Prev by Date: Re: Using MIG RPC between 2 threads inside a process
  • Next by Date: Mach RPC and SecToken
  • Previous by thread: Re: Using MIG RPC between 2 threads inside a process
  • Next by thread: Re: Using MIG RPC between 2 threads inside a process
  • Index(es):
    • Date
    • Thread