View Single Post
  #1 (permalink)  
Old 02-04-2005
andhow andhow is offline
Registered User
 
 
Join Date: Jan 2005
Posts: 16
thread pools and deadlocks

Quoting 29.2 in the documentation:
Quote:
For example, if a server calls back into the client from
within an operation implementation, the client-side receiver thread can
process the request from the server even though the client is waiting for a
reply for its request from the same server.
When it says "process a request from the server", does it mean a full synchronous method invocation from the server back to the client? Said differently, if I have two objects A and B using different communicators, and A::foo() calls B::bar(), then B::bar() calls A::bar() which does nothing but return, should this avoid deadlock if both communicators have Client and Server threadpool sizes of 1?

The reason I ask is I am getting different behavior. Both communicators have default (no configs used) thread pool sizes of 1 and are in different processes. In addition to synchronous method invocations, ice_ping() and checked_cast() deadlock as well. As expected raising the ThreadPool.MaxSize's fixes the problem.
Reply With Quote