// File: fanchenxinok[P]gtest-lcov/myResponsers/responser12.cpp
// Function: responser2::onResponser()
void responser2::onResponser()
{
	while(1){
		pthread_mutex_lock(&mutex);
		pthread_cond_wait(&cond,&mutex);
		switch(eventMsg.eventID)
		{
			case R2_FUN1:
			{
				double a, b;
				msgDataUnPack(eventMsg.msgData, sizeof(double), &a,
					sizeof(double), &b, -1);
				double res = r2_fun1(a, b);

				/* ������Ϣ�������� */
				MSG_INFO msgInfo;
				msgInfo.resType = RES2;
				msgInfo.msg.eventID = L2_FUN1;
				msgDataPack(msgInfo.msg.msgData, sizeof(double), &res, -1);
				sendMsgToListener(msgInfo);
				break;
			}
			case R2_FUN2:
			{
				int c, d;
				msgDataUnPack(eventMsg.msgData, sizeof(int), &c,
					sizeof(int), &d, -1);
				int sum = r2_fun2(c, d);
				cout << "(2)The sum is " << sum << endl;

				/* ������Ϣ�������� */
				MSG_INFO msgInfo;
				msgInfo.resType = RES2;
				msgInfo.msg.eventID = L2_FUN2;
				msgDataPack(msgInfo.msg.msgData, sizeof(int), &sum, -1);
				sendMsgToListener(msgInfo);
				break;
			}
			default:
				break;
		}
		
		pthread_mutex_unlock(&mutex);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2f0, %rsp            # imm = 0x2F0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
addq $0xc0, %rdi
movq %rdi, -0x268(%rbp)
callq 0x21e0
movq -0x268(%rbp), %rsi
movq -0x258(%rbp), %rdi
addq $0x90, %rdi
callq 0x21f0
movq -0x258(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x25c(%rbp)
subl $0x2, %eax
je 0x3629
jmp 0x3615
movl -0x25c(%rbp), %eax
subl $0x3, %eax
je 0x36ef
jmp 0x37ee
movq -0x258(%rbp), %rdi
movq %rdi, %rsi
addq $0x8, %rsi
addq $0x4, %rsi
movl $0x8, %r8d
leaq -0x10(%rbp), %rcx
leaq -0x18(%rbp), %r9
movq %r8, %rdx
movl $0xffffffff, (%rsp)     # imm = 0xFFFFFFFF
movb $0x0, %al
callq 0x2240
movq -0x258(%rbp), %rdi
movsd -0x10(%rbp), %xmm0
movsd -0x18(%rbp), %xmm1
callq 0x34f0
movq -0x258(%rbp), %rdi
movsd %xmm0, -0x20(%rbp)
movw $0x1, -0xa8(%rbp)
movl $0x2, -0xa4(%rbp)
leaq -0xa8(%rbp), %rsi
addq $0x4, %rsi
addq $0x4, %rsi
movl $0x8, %edx
leaq -0x20(%rbp), %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movb $0x0, %al
callq 0x2220
leaq -0x130(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movl $0x88, %edx
callq 0x2110
movq %rsp, %rdi
movl $0x11, %ecx
leaq -0x130(%rbp), %rsi
rep  movsq (%rsi), %es:(%rdi)
movq -0x258(%rbp), %rdi
callq 0x2150
jmp 0x37f0
movq -0x258(%rbp), %rdi
movq %rdi, %rsi
addq $0x8, %rsi
addq $0x4, %rsi
movl $0x4, %r8d
leaq -0x134(%rbp), %rcx
leaq -0x138(%rbp), %r9
movq %r8, %rdx
movl $0xffffffff, (%rsp)     # imm = 0xFFFFFFFF
movb $0x0, %al
callq 0x2240
movq -0x258(%rbp), %rdi
movl -0x134(%rbp), %esi
movl -0x138(%rbp), %edx
callq 0x3570
movl %eax, -0x13c(%rbp)
movq 0x388d(%rip), %rdi      # 0x6fd8
leaq 0xaf1(%rip), %rsi       # 0x4243
callq 0x2170
movq %rax, %rdi
movl -0x13c(%rbp), %esi
callq 0x2230
movq %rax, %rdi
movq 0x3859(%rip), %rsi      # 0x6fc8
callq 0x21a0
movq -0x258(%rbp), %rdi
movw $0x1, -0x1c4(%rbp)
movl $0x3, -0x1c0(%rbp)
leaq -0x1c4(%rbp), %rsi
addq $0x4, %rsi
addq $0x4, %rsi
movl $0x4, %edx
leaq -0x13c(%rbp), %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movb $0x0, %al
callq 0x2220
leaq -0x250(%rbp), %rdi
leaq -0x1c4(%rbp), %rsi
movl $0x88, %edx
callq 0x2110
movq %rsp, %rdi
movl $0x11, %ecx
leaq -0x250(%rbp), %rsi
rep  movsq (%rsi), %es:(%rdi)
movq -0x258(%rbp), %rdi
callq 0x2150
jmp 0x37f0
jmp 0x37f0
movq -0x258(%rbp), %rdi
addq $0xc0, %rdi
callq 0x2100
jmp 0x35ca
nopl (%rax,%rax)