// File: dustin[P]kvtest/./async.hh
// Function: kvtest::AsyncExecutor::run()
void run() {
            try {
                while(true) {
                    std::queue<AsyncOperation*> ops;
                    iq->drainTo(ops);
                    tut->begin();
                    int count = 0;

                    while(!ops.empty()) {
                        AsyncOperation *op = ops.front();
                        ops.pop();

                        op->execute(tut);
                        count++;
                        delete op;
                    }

                    tut->commit();
                }
            } catch(AsyncShutdownOperation *op) {
                delete op;
                std::cerr << "Shutting down..." << std::endl;
            } catch(std::runtime_error &e) {
                std::cerr << "Exception in executor loop: "
                          << e.what() << std::endl;
                abort();
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x88(%rbp)
jmp 0x5b8c
leaq -0x58(%rbp), %rdi
callq 0x51f0
jmp 0x5b97
movq -0x88(%rbp), %rax
movq 0x8(%rax), %rdi
leaq -0x58(%rbp), %rsi
callq 0x5dd0
jmp 0x5bad
movq -0x88(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
jmp 0x5bc2
movl $0x0, -0x68(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5f40
movb %al, -0x89(%rbp)
jmp 0x5bda
movb -0x89(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x5beb
jmp 0x5d75
leaq -0x58(%rbp), %rdi
callq 0x5f60
movq %rax, -0x98(%rbp)
jmp 0x5bfd
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5f80
jmp 0x5c16
movq -0x88(%rbp), %rax
movq -0x70(%rbp), %rdi
movq (%rax), %rsi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
jmp 0x5c2f
movl -0x68(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0xa0(%rbp)
cmpq $0x0, %rax
je 0x5c56
movq -0xa0(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x5bc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x5c7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5fa0
movl -0x64(%rbp), %eax
movl %eax, -0xa4(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x5cfa
movq -0x60(%rbp), %rdi
callq 0x40d0
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0xb0(%rbp)
cmpq $0x0, %rax
je 0x5cbb
movq -0xb0(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x13326(%rip), %rdi     # 0x18fe8
leaq 0xa3cd(%rip), %rsi      # 0x10096
callq 0x42d0
movq %rax, -0xb8(%rbp)
jmp 0x5cd7
movq -0xb8(%rbp), %rdi
movq 0x132c3(%rip), %rsi     # 0x18fa8
callq 0x4300
jmp 0x5cec
callq 0x4470
addq $0xd0, %rsp
popq %rbp
retq
movl -0xa4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x5dbe
movq -0x60(%rbp), %rdi
callq 0x40d0
movq %rax, -0x78(%rbp)
movq 0x132c7(%rip), %rdi     # 0x18fe8
leaq 0xa351(%rip), %rsi      # 0x10079
callq 0x42d0
movq %rax, -0xc0(%rbp)
jmp 0x5d36
movq -0x78(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq 0x42d0
movq %rax, -0xc8(%rbp)
jmp 0x5d5b
movq -0xc8(%rbp), %rdi
movq 0x1323f(%rip), %rsi     # 0x18fa8
callq 0x4300
jmp 0x5d70
callq 0x4160
movq -0x88(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
jmp 0x5d8a
leaq -0x58(%rbp), %rdi
callq 0x5fa0
jmp 0x5b8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x4470
jmp 0x5dab
jmp 0x5dbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x4470
movq -0x60(%rbp), %rdi
callq 0x44c0
movq %rax, %rdi
callq 0x5710
nop