// File: cybozu[P]yrmcds/./cybozu/thread.hpp
// Function: cybozu::thread_base<cybozu::worker, 1>::run_in_try()
void run_in_try() {
        try {
            static_cast<Derived*>(this)->run();
            m_done.store(true, std::memory_order_release);

        } catch( const std::system_error& e ) {
            demangler t(typeid(e).name());
            logger::error() << "[" << t.name() << "] "
                            << "(" << e.code() << ") "
                            << e.what();
            if( exit_on_exception != 0 )
                ::exit(exit_on_exception);

        } catch( const std::exception& e ) {
            demangler t(typeid(e).name());
            logger::error() << "[" << t.name() << "] "
                            << e.what();
            if( exit_on_exception != 0 )
                ::exit(exit_on_exception);
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x262e0
jmp 0x25fe1
movq -0xa0(%rbp), %rdi
movl $0x1, %esi
movl $0x3, %edx
callq 0x23390
jmp 0x262c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0xa4(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x26155
movq -0x10(%rbp), %rdi
callq 0x8230
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rax), %rdi
callq 0xa5c0
movq %rax, %rsi
leaq -0x80(%rbp), %rdi
callq 0x16a50
jmp 0x26049
leaq -0x90(%rbp), %rdi
callq 0xa600
jmp 0x26057
leaq 0x5408e(%rip), %rsi     # 0x7a0ec
leaq -0x90(%rbp), %rdi
callq 0xa650
movq %rax, -0xb0(%rbp)
jmp 0x26073
leaq -0x80(%rbp), %rdi
callq 0xa6d0
movq %rax, -0xb8(%rbp)
jmp 0x26085
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdi
callq 0xa690
movq %rax, -0xc0(%rbp)
jmp 0x260a1
movq -0xc0(%rbp), %rdi
leaq 0x54030(%rip), %rsi     # 0x7a0df
callq 0xa6e0
movq %rax, -0xc8(%rbp)
jmp 0x260bd
movq -0xc8(%rbp), %rdi
leaq 0x56ae2(%rip), %rsi     # 0x7cbad
callq 0xa650
movq %rax, -0xd0(%rbp)
jmp 0x260d9
movq -0x60(%rbp), %rdi
callq 0xa870
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0xa830
movq %rax, -0xd8(%rbp)
jmp 0x260fa
movq -0xd8(%rbp), %rdi
leaq 0x53fea(%rip), %rsi     # 0x7a0f2
callq 0xa6e0
movq %rax, -0xe0(%rbp)
jmp 0x26116
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0xe0(%rbp), %rdi
movq %rax, -0x98(%rbp)
leaq -0x98(%rbp), %rsi
callq 0xa720
jmp 0x2613f
leaq -0x90(%rbp), %rdi
callq 0xa770
movl $0x1, %edi
callq 0x8770
movl -0xa4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x262c9
movq -0x10(%rbp), %rdi
callq 0x8230
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rax), %rdi
callq 0xa5c0
movq %rax, %rsi
leaq -0x40(%rbp), %rdi
callq 0x16a50
jmp 0x26193
leaq -0x50(%rbp), %rdi
callq 0xa600
jmp 0x2619e
leaq 0x53f47(%rip), %rsi     # 0x7a0ec
leaq -0x50(%rbp), %rdi
callq 0xa650
movq %rax, -0xe8(%rbp)
jmp 0x261b7
leaq -0x40(%rbp), %rdi
callq 0xa6d0
movq %rax, -0xf0(%rbp)
jmp 0x261c9
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdi
callq 0xa690
movq %rax, -0xf8(%rbp)
jmp 0x261e5
movq -0xf8(%rbp), %rdi
leaq 0x53eec(%rip), %rsi     # 0x7a0df
callq 0xa6e0
movq %rax, -0x100(%rbp)
jmp 0x26201
movq -0x20(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0x100(%rbp), %rdi
movq %rax, -0x58(%rbp)
leaq -0x58(%rbp), %rsi
callq 0xa720
jmp 0x26224
leaq -0x50(%rbp), %rdi
callq 0xa770
movl $0x1, %edi
callq 0x8770
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x26271
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x26268
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xa770
leaq -0x40(%rbp), %rdi
callq 0xa7c0
callq 0x8ae0
jmp 0x26278
jmp 0x262c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x262b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x262ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xa770
leaq -0x80(%rbp), %rdi
callq 0xa7c0
callq 0x8ae0
jmp 0x262be
jmp 0x262c9
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x10(%rbp), %rdi
callq 0x8bc0
movq %rax, %rdi
callq 0xa7e0
nopw (%rax,%rax)