238
239 public synchronized void add_exception(TypeCode exceptionType)
240 {
241 _exceptions.add(exceptionType);
242 }
243
244 public synchronized void invoke()
245 {
246 doInvocation();
247 }
248
249 public synchronized void send_oneway()
250 {
251 _isOneWay = true;
252 doInvocation();
253 }
254
255 public synchronized void send_deferred()
256 {
257 AsynchInvoke invokeObject = new AsynchInvoke(_orb, this, false);
258 new sun.misc.ManagedLocalsThread(invokeObject).start();
259 }
260
261 public synchronized boolean poll_response()
262 {
263 // this method has to be synchronized even though it seems
264 // "readonly" since the thread object doing the asynchronous
265 // invocation can potentially update this variable in parallel.
266 // updates are currently simply synchronized againt the request
267 // object.
268 return gotResponse;
269 }
270
271 public synchronized void get_response()
272 throws org.omg.CORBA.WrongTransaction
273 {
274 while (gotResponse == false) {
275 // release the lock. wait to be notified by the thread that is
276 // doing the asynchronous invocation.
277 try {
278 wait();
|
238
239 public synchronized void add_exception(TypeCode exceptionType)
240 {
241 _exceptions.add(exceptionType);
242 }
243
244 public synchronized void invoke()
245 {
246 doInvocation();
247 }
248
249 public synchronized void send_oneway()
250 {
251 _isOneWay = true;
252 doInvocation();
253 }
254
255 public synchronized void send_deferred()
256 {
257 AsynchInvoke invokeObject = new AsynchInvoke(_orb, this, false);
258 new Thread(null, invokeObject, "Async-Request-Thread", 0, false).start();
259 }
260
261 public synchronized boolean poll_response()
262 {
263 // this method has to be synchronized even though it seems
264 // "readonly" since the thread object doing the asynchronous
265 // invocation can potentially update this variable in parallel.
266 // updates are currently simply synchronized againt the request
267 // object.
268 return gotResponse;
269 }
270
271 public synchronized void get_response()
272 throws org.omg.CORBA.WrongTransaction
273 {
274 while (gotResponse == false) {
275 // release the lock. wait to be notified by the thread that is
276 // doing the asynchronous invocation.
277 try {
278 wait();
|