# File lib/aws/simple_workflow/activity_task_collection.rb, line 73
      def poll_for_single_task task_list, options = {}, &block

        client_opts = {}
        client_opts[:domain] = domain.name
        client_opts[:task_list] = { :name => task_list }
        client_opts[:identity] = identity_opt(options)

        response = client.poll_for_activity_task(client_opts)

        if response.data['taskToken']
          activity_task = ActivityTask.new(domain, response.data)
          if block_given?
            begin
              yield(activity_task)
              activity_task.complete! unless activity_task.responded?
            rescue ActivityTask::CancelRequestedError
              activity_task.cancel! unless activity_task.responded?
            rescue StandardError => e
              unless activity_task.responded?
                reason = "UNTRAPPED ERROR: #{e.message}"
                details = e.backtrace.join("\n")
                activity_task.fail!(:reason => reason, :details => details)
              end
              raise e
            end
            nil
          else
            activity_task
          end
        else
          nil
        end

      end