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:
AsyncResult
waitForCompleted
waitForSent
Communicator
- createAdmin
createObjectAdapter
createObjectAdapterWithEndpoints
createObjectAdapterWithRouter
destroy
- end_flushBatchRequests
flushBatchRequests
getAdmin
shutdown
waitForShutdown
Connection
close
end_flushBatchRequests
flushBatchRequests
ObjectPrx
ice_getConnection
ObjectAdapter
activate
deactivate
destroy
waitForDeactivate
waitForHold
The Java mapping allows you to interrupt threads blocked in these APIs.
See Also