Blocking API Calls
This page lists the Ice APIs that can potentially block the calling thread. Graphical applications should normally avoid calling these APIs from the "event loop" thread.
The JavaScript mapping does not have any blocking APIs.
All synchronous remote invocations can block, including the built-in proxy operations ice_ping, ice_isA, ice_id and ice_ids. Since checkedCast internally calls ice_isA, it too can block.
For asynchronous remote invocations, the begin_ method never blocks but the end_ method can block.
Ice also has a number of local APIs that can block, either because they wait indefinitely for a condition to become true, or because their implementations may make remote invocations:
AsyncResultwaitForCompletedwaitForSent
Communicator- createAdmin
createObjectAdaptercreateObjectAdapterWithEndpointscreateObjectAdapterWithRouterdestroy- end_flushBatchRequests
flushBatchRequestsgetAdminshutdownwaitForShutdown
Connectioncloseend_flushBatchRequestsflushBatchRequests
ObjectPrxice_getConnection
ObjectAdapteractivatedeactivatedestroywaitForDeactivatewaitForHold
The Java mapping allows you to interrupt threads blocked in these APIs.
See Also