On 07/02/2012, at 8:41 PM, Nadav Samet wrote:

> 
> How readable is that? And what about the global variables? etc.
> 
> 
> I absolutely agree that recv() is more readable than using callbacks, but it 
> has the undesirable characteristic that it blocks the calling thread until 
> the response arrives...


That's not undesirable , its the same as for a callback: the callback "stops 
running in between
messages" just the same.

>  Imagine an RPC server A with a few worker threads that in order to process a 
> request from a client it needs to make a request to another server B. Having 
> a worker thread on server A blocking on recv() from a socket that is 
> connected to server B will hurt performance. The waiting thread could have 
> been serving other requests while it has been waiting inside recv().

This is true, but only because OS threads are heavyweight: context switches are 
slow
and they eat up a lot of resources.

Fibres (as used in Felix, Erlang, MLton, Haskell I believe, and also Windows) 
are
much more lightweight.

--
john skaller
[email protected]




_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to