[rabbitmq-discuss] .NET client SimpleRpcServer question

Ryan Davis ryan at acceleration.net
Wed Jun 10 14:07:24 BST 2009


Matthias Radestock wrote:
> Thanks for the patch. If you don't mind, we'll look into this in a few
> weeks when the person who wrote the original code is back from holidays.
Certainly.  I'll put my patch into production today, and will send you a
new patch if I run into problems.

> On the latter point, the locks look a bit too coarse-grained to me,
> covering activities that can take an indeterminate amount of time,
> such as interactions with the server. That may be unavoidable, but
> without understanding every single detail of the code it's hard to be
> sure.
They are a bit heavy-handed.  It is very possible that Subscription /
SimpleRpcServer could be refactored to maintain thread safety with finer
locks.  I was wanting to make minimal changes, so I didn't go that
route.   I walked through it with another co-worker for a sanity check,
and locking those large blocks seemed the only way to ensure correctness
in these cases:

   1. calling Close() while the subscription is blocked waiting for a
      message
   2. calling Close() while the server is processing a message
   3. calling Close() after the subscription has fetched a message but
      before the server has started processing it

I'm looking forward to hearing from the original author next month.

Thanks,

Ryan Davis
Acceleration.net
Director of Programming Services
2831 NW 41st street, suite B
Gainesville, FL 32606

Office: 352-335-6500 x 124
Fax: 352-335-6506

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090610/e9d87451/attachment.htm 


More information about the rabbitmq-discuss mailing list