+ ASyncCall *ac = (ASyncCall *)ares->object_data;
+ MonoThread *thread = NULL;
+ MonoObject *res, *exc = NULL;
+ MonoArray *out_args = NULL;
+
+ if (ares->execution_context) {
+ /* use captured ExecutionContext (if available) */
+ thread = mono_thread_current ();
+ MONO_OBJECT_SETREF (ares, original_context, thread->execution_context);
+ MONO_OBJECT_SETREF (thread, execution_context, ares->execution_context);
+ } else {
+ ares->original_context = NULL;
+ }