if (event_loop_p && target_can_async_p () && !target_executing)
if (target_can_async_p () && !target_executing)
throw_exception (enum return_reason reason){  quit_flag = 0;  immediate_quit = 0;  /* Perhaps it would be cleaner to do this via the cleanup chain (not sure     I can think of a reason why that is vital, though).  */  bpstat_clear_actions (stop_bpstat);	/* Clear queued breakpoint commands */  disable_current_display ();  do_cleanups (ALL_CLEANUPS);  if (event_loop_p && target_can_async_p () && !target_executing)    do_exec_cleanups (ALL_CLEANUPS);  if (event_loop_p && sync_execution)    do_exec_error_cleanups (ALL_CLEANUPS);  if (annotation_level > 1)    switch (reason)      {      case RETURN_QUIT:	annotate_quit ();	break;      case RETURN_ERROR:	annotate_error ();	break;      }  /* Jump to the containing catch_errors() call, communicating REASON     to that call via setjmp's return value.  Note that REASON can't     be zero, by definition in defs.h. */  (NORETURN void) SIGLONGJMP (*catch_return, (int) reason);}