// File: enbock[P]Warp10Server/ulib/src/Thread.cpp
// Function: u::ThreadSystem::run(long)
void ThreadSystem::run(int64 id)
{
	_access.lock();

#ifndef NDEBUG
	if(ThreadSystem::isTerminating)
		trace(String("                                                                                        ")
		+ "\n\033[A"
		+ "\033[33mRun queue="+Object::int2string(_build.size())
		+ "\trun="+Object::int2string(_run.size())
		+ "("+Object::int2string(peakRun)+")"
		+ "\tfinished="+Object::int2string(finish)
		+ "\033[A"
		);
#endif
	Thread *thread = _build.at(id);
	_build.erase(id);
	_run.push_back(thread);
#ifndef NDEBUG
	if(peakRun < _run.size()) peakRun = _run.size();
#endif
	_access.unlock();
	thread->run();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x390, %rsp            # imm = 0x390
movq %rdi, -0x8(%rbp)
leaq 0x20832a(%rip), %rdi    # 0x6196b0
callq 0x40d7d0
testb $0x1, 0x208317(%rip)    # 0x6196a9
je 0x411b36
movq $0x61a6a0, %rdi         # imm = 0x61A6A0
leaq 0x18dcd3(%rip), %rsi    # 0x59f079
callq 0x47dcd0
movq %rax, -0x368(%rbp)
movb $0x0, -0x1c1(%rbp)
movb $0x0, -0x1d5(%rbp)
movb $0x0, -0x1d6(%rbp)
movb $0x0, -0x231(%rbp)
movb $0x0, -0x232(%rbp)
movb $0x0, -0x233(%rbp)
movb $0x0, -0x291(%rbp)
movb $0x0, -0x292(%rbp)
movb $0x0, -0x293(%rbp)
movb $0x0, -0x2f1(%rbp)
movb $0x0, -0x2f2(%rbp)
movb $0x0, -0x2f3(%rbp)
movb $0x0, -0x2f4(%rbp)
movb $0x0, -0x351(%rbp)
movb $0x0, -0x352(%rbp)
movb $0x0, -0x354(%rbp)
movb $0x1, %al
testb $0x1, %al
jne 0x41142d
jmp 0x411630
leaq 0x18e4d7(%rip), %rsi    # 0x59f90b
leaq -0x1c0(%rbp), %rdi
callq 0x40e000
movb $0x1, -0x1c1(%rbp)
leaq -0x188(%rbp), %rsi
leaq 0x18e50f(%rip), %rdx    # 0x59f964
leaq -0x168(%rbp), %rdi
callq 0x405740
jmp 0x411463
movb $0x1, -0x1d5(%rbp)
leaq 0x18e4f8(%rip), %rdx    # 0x59f969
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x405740
jmp 0x411486
movb $0x1, -0x1d6(%rbp)
leaq 0x20828c(%rip), %rdi    # 0x619720
callq 0x412500
movl %eax, %esi
leaq -0x230(%rbp), %rdi
callq 0x40dc60
jmp 0x4114a9
movb $0x1, -0x231(%rbp)
leaq -0x1f8(%rbp), %rdx
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x407710
jmp 0x4114cc
movb $0x1, -0x232(%rbp)
leaq 0x18e26d(%rip), %rdx    # 0x59f747
leaq -0x108(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x405740
jmp 0x4114ef
movb $0x1, -0x233(%rbp)
leaq 0x208273(%rip), %rdi    # 0x619770
callq 0x412500
movl %eax, %esi
leaq -0x290(%rbp), %rdi
callq 0x40dc60
jmp 0x411512
movb $0x1, -0x291(%rbp)
leaq -0x258(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x407710
jmp 0x411535
movb $0x1, -0x292(%rbp)
leaq 0x1921ab(%rip), %rdx    # 0x5a36ee
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x405740
jmp 0x411558
movb $0x1, -0x293(%rbp)
movl 0x20822b(%rip), %esi    # 0x619790
leaq -0x2f0(%rbp), %rdi
callq 0x40dc60
jmp 0x411573
movb $0x1, -0x2f1(%rbp)
leaq -0x2b8(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x407710
jmp 0x411596
movb $0x1, -0x2f2(%rbp)
leaq 0x18daee(%rip), %rdx    # 0x59f092
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x405740
jmp 0x4115b9
movb $0x1, -0x2f3(%rbp)
leaq 0x18e18d(%rip), %rdx    # 0x59f754
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x405740
jmp 0x4115d9
movb $0x1, -0x2f4(%rbp)
movl 0x2081a2(%rip), %esi    # 0x619788
leaq -0x350(%rbp), %rdi
callq 0x40dc60
jmp 0x4115f4
movb $0x1, -0x351(%rbp)
leaq -0x318(%rbp), %rdx
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x407710
jmp 0x411611
movb $0x1, -0x352(%rbp)
leaq 0x18e346(%rip), %rdx    # 0x59f965
leaq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x405740
jmp 0x41162e
jmp 0x411665
leaq -0x353(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x415b00
movq -0x370(%rbp), %rdx
movb $0x1, -0x354(%rbp)
leaq 0x1ad432(%rip), %rsi    # 0x5bea8a
leaq -0x28(%rbp), %rdi
callq 0x405e40
jmp 0x411663
jmp 0x411665
movq -0x368(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x490550
movq %rax, -0x378(%rbp)
jmp 0x41167e
movq -0x378(%rbp), %rdi
leaq 0x18da0f(%rip), %rsi    # 0x59f09b
callq 0x47dcd0
movq %rax, -0x380(%rbp)
jmp 0x41169a
movq -0x380(%rbp), %rdi
movq $0x47d5b0, %rsi         # imm = 0x47D5B0
callq 0x47c7c0
jmp 0x4116af
leaq -0x28(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x354(%rbp)
jne 0x4116c3
jmp 0x4116cf
leaq -0x353(%rbp), %rdi
callq 0x415b20
testb $0x1, -0x352(%rbp)
jne 0x4116da
jmp 0x4116e3
leaq -0x48(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x351(%rbp)
jne 0x4116ee
jmp 0x4116fa
leaq -0x350(%rbp), %rdi
callq 0x404d10
testb $0x1, -0x2f4(%rbp)
jne 0x411705
jmp 0x41170e
leaq -0x68(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x2f3(%rbp)
jne 0x411719
jmp 0x411725
leaq -0x88(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x2f2(%rbp)
jne 0x411730
jmp 0x41173c
leaq -0xa8(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x2f1(%rbp)
jne 0x411747
jmp 0x411753
leaq -0x2f0(%rbp), %rdi
callq 0x404d10
testb $0x1, -0x293(%rbp)
jne 0x41175e
jmp 0x41176a
leaq -0xc8(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x292(%rbp)
jne 0x411775
jmp 0x411781
leaq -0xe8(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x291(%rbp)
jne 0x41178c
jmp 0x411798
leaq -0x290(%rbp), %rdi
callq 0x404d10
testb $0x1, -0x233(%rbp)
jne 0x4117a3
jmp 0x4117af
leaq -0x108(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x232(%rbp)
jne 0x4117ba
jmp 0x4117c6
leaq -0x128(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x231(%rbp)
jne 0x4117d1
jmp 0x4117dd
leaq -0x230(%rbp), %rdi
callq 0x404d10
testb $0x1, -0x1d6(%rbp)
jne 0x4117e8
jmp 0x4117f4
leaq -0x148(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x1d5(%rbp)
jne 0x4117ff
jmp 0x41180b
leaq -0x168(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x1c1(%rbp)
jne 0x411816
jmp 0x411822
leaq -0x1c0(%rbp), %rdi
callq 0x404d10
jmp 0x411b36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411b1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411b01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411ae8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411acf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411ab6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411a9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411a84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411a6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411a52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411a39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411a20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x411a07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x4119f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x4119d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x4119c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
jmp 0x4119a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1d0(%rbp)
movl %eax, -0x1d4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x48dbd0
testb $0x1, -0x354(%rbp)
jne 0x4119b4
jmp 0x4119c0
leaq -0x353(%rbp), %rdi
callq 0x415b20
jmp 0x4119c2
testb $0x1, -0x352(%rbp)
jne 0x4119cd
jmp 0x4119d6
leaq -0x48(%rbp), %rdi
callq 0x48dbd0
jmp 0x4119d8
testb $0x1, -0x351(%rbp)
jne 0x4119e3
jmp 0x4119ef
leaq -0x350(%rbp), %rdi
callq 0x404d10
jmp 0x4119f1
testb $0x1, -0x2f4(%rbp)
jne 0x4119fc
jmp 0x411a05
leaq -0x68(%rbp), %rdi
callq 0x48dbd0
jmp 0x411a07
testb $0x1, -0x2f3(%rbp)
jne 0x411a12
jmp 0x411a1e
leaq -0x88(%rbp), %rdi
callq 0x48dbd0
jmp 0x411a20
testb $0x1, -0x2f2(%rbp)
jne 0x411a2b
jmp 0x411a37
leaq -0xa8(%rbp), %rdi
callq 0x48dbd0
jmp 0x411a39
testb $0x1, -0x2f1(%rbp)
jne 0x411a44
jmp 0x411a50
leaq -0x2f0(%rbp), %rdi
callq 0x404d10
jmp 0x411a52
testb $0x1, -0x293(%rbp)
jne 0x411a5d
jmp 0x411a69
leaq -0xc8(%rbp), %rdi
callq 0x48dbd0
jmp 0x411a6b
testb $0x1, -0x292(%rbp)
jne 0x411a76
jmp 0x411a82
leaq -0xe8(%rbp), %rdi
callq 0x48dbd0
jmp 0x411a84
testb $0x1, -0x291(%rbp)
jne 0x411a8f
jmp 0x411a9b
leaq -0x290(%rbp), %rdi
callq 0x404d10
jmp 0x411a9d
testb $0x1, -0x233(%rbp)
jne 0x411aa8
jmp 0x411ab4
leaq -0x108(%rbp), %rdi
callq 0x48dbd0
jmp 0x411ab6
testb $0x1, -0x232(%rbp)
jne 0x411ac1
jmp 0x411acd
leaq -0x128(%rbp), %rdi
callq 0x48dbd0
jmp 0x411acf
testb $0x1, -0x231(%rbp)
jne 0x411ada
jmp 0x411ae6
leaq -0x230(%rbp), %rdi
callq 0x404d10
jmp 0x411ae8
testb $0x1, -0x1d6(%rbp)
jne 0x411af3
jmp 0x411aff
leaq -0x148(%rbp), %rdi
callq 0x48dbd0
jmp 0x411b01
testb $0x1, -0x1d5(%rbp)
jne 0x411b0c
jmp 0x411b18
leaq -0x168(%rbp), %rdi
callq 0x48dbd0
jmp 0x411b1a
testb $0x1, -0x1c1(%rbp)
jne 0x411b25
jmp 0x411b31
leaq -0x1c0(%rbp), %rdi
callq 0x404d10
jmp 0x411be0
movq -0x8(%rbp), %rsi
leaq 0x207ba7(%rip), %rdi    # 0x6196e8
addq $0x38, %rdi
callq 0x412520
movq (%rax), %rax
movq %rax, -0x360(%rbp)
movq -0x8(%rbp), %rsi
leaq 0x207b89(%rip), %rdi    # 0x6196e8
callq 0x412560
leaq 0x207bcd(%rip), %rdi    # 0x619738
addq $0x38, %rdi
leaq -0x360(%rbp), %rsi
callq 0x412490
movq 0x207c0e(%rip), %rax    # 0x619790
movq %rax, -0x388(%rbp)
leaq 0x207ba8(%rip), %rdi    # 0x619738
addq $0x38, %rdi
callq 0x412500
movq %rax, %rcx
movq -0x388(%rbp), %rax
cmpq %rcx, %rax
jae 0x411bbf
leaq 0x207b89(%rip), %rdi    # 0x619738
addq $0x38, %rdi
callq 0x412500
movq %rax, 0x207bd1(%rip)    # 0x619790
leaq 0x207aea(%rip), %rdi    # 0x6196b0
callq 0x40d740
movq -0x360(%rbp), %rdi
callq 0x4106c0
addq $0x390, %rsp            # imm = 0x390
popq %rbp
retq
movq -0x1d0(%rbp), %rdi
callq 0x4be910
nopl (%rax)