亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pthread_cond_wait.s

?? linux下的C語言庫源碼有一百多M解壓后很不錯
?? S
字號:
/* Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.   This file is part of the GNU C Library.   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#include <sysdep.h>#include <shlib-compat.h>#include <lowlevellock.h>#include <lowlevelcond.h>#include <tcb-offsets.h>#include <kernel-features.h>	.text	.align	16	.type	__condvar_cleanup, @function	.globl	__condvar_cleanup	.hidden	__condvar_cleanup__condvar_cleanup:	pushq	%r12	/* Get internal lock.  */	movq	%rdi, %r8	movq	8(%rdi), %rdi	movl	$1, %esi	xorl	%eax, %eax	LOCK#if cond_lock == 0	cmpxchgl %esi, (%rdi)#else	cmpxchgl %esi, cond_lock(%rdi)#endif	jz	1f#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_lock_wait#if cond_lock != 0	subq	$cond_lock, %rdi#endif1:	movl	broadcast_seq(%rdi), %edx	cmpl	4(%r8), %edx	jne	3f	/* We increment the wakeup_seq counter only if it is lower than	   total_seq.  If this is not the case the thread was woken and	   then canceled.  In this case we ignore the signal.  */	movq	total_seq(%rdi), %rax	cmpq	wakeup_seq(%rdi), %rax	jbe	6f	incq	wakeup_seq(%rdi)	incl	cond_futex(%rdi)6:	incq	woken_seq(%rdi)3:	subl	$(1 << nwaiters_shift), cond_nwaiters(%rdi)	/* Wake up a thread which wants to destroy the condvar object.  */	xorq	%r12, %r12	cmpq	$0xffffffffffffffff, total_seq(%rdi)	jne	4f	movl	cond_nwaiters(%rdi), %eax	andl	$~((1 << nwaiters_shift) - 1), %eax	jne	4f	addq	$cond_nwaiters, %rdi	cmpq	$-1, dep_mutex-cond_nwaiters(%rdi)	movl	$1, %edx#ifdef __ASSUME_PRIVATE_FUTEX	movl	$FUTEX_WAKE, %eax	movl	$(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), %esi	cmove	%eax, %esi#else	movl	$0, %eax	movl	%fs:PRIVATE_FUTEX, %esi	cmove	%eax, %esi	orl	$FUTEX_WAKE, %esi#endif	movl	$SYS_futex, %eax	syscall	subq	$cond_nwaiters, %rdi	movl	$1, %r12d4:	LOCK#if cond_lock == 0	decl	(%rdi)#else	decl	cond_lock(%rdi)#endif	je	2f#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_unlock_wake	/* Wake up all waiters to make sure no signal gets lost.  */2:	testq	%r12, %r12	jnz	5f	addq	$cond_futex, %rdi	cmpq	$-1, dep_mutex-cond_futex(%rdi)	movl	$0x7fffffff, %edx#ifdef __ASSUME_PRIVATE_FUTEX	movl	$FUTEX_WAKE, %eax	movl	$(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), %esi	cmove	%eax, %esi#else	movl	$0, %eax	movl	%fs:PRIVATE_FUTEX, %esi	cmove	%eax, %esi	orl	$FUTEX_WAKE, %esi#endif	movl	$SYS_futex, %eax	syscall5:	movq	16(%r8), %rdi	callq	__pthread_mutex_cond_lock	popq	%r12	retq	.size	__condvar_cleanup, .-__condvar_cleanup/* int pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)  */	.globl	__pthread_cond_wait	.type	__pthread_cond_wait, @function	.align	16__pthread_cond_wait:.LSTARTCODE:	pushq	%r12.Lpush_r12:#define FRAME_SIZE 64	subq	$FRAME_SIZE, %rsp.Lsubq:	/* Stack frame:	   rsp + 64	            +--------------------------+	   rsp + 32 | cleanup buffer           |		    +--------------------------+	   rsp + 24 | old wake_seq value       |	            +--------------------------+	   rsp + 16 | mutex pointer            |	            +--------------------------+	   rsp +  8 | condvar pointer          |	            +--------------------------+	   rsp +  4 | old broadcast_seq value  |	            +--------------------------+	   rsp +  0 | old cancellation mode    |	            +--------------------------+	*/	cmpq	$-1, dep_mutex(%rdi)		/* Prepare structure passed to cancellation handler.  */	movq	%rdi, 8(%rsp)	movq	%rsi, 16(%rsp)	je	15f	movq	%rsi, dep_mutex(%rdi)	/* Get internal lock.  */15:	movl	$1, %esi	xorl	%eax, %eax	LOCK#if cond_lock == 0	cmpxchgl %esi, (%rdi)#else	cmpxchgl %esi, cond_lock(%rdi)#endif	jne	1f	/* Unlock the mutex.  */2:	movq	16(%rsp), %rdi	xorl	%esi, %esi	callq	__pthread_mutex_unlock_usercnt	testl	%eax, %eax	jne	12f	movq	8(%rsp), %rdi	incq	total_seq(%rdi)	incl	cond_futex(%rdi)	addl	$(1 << nwaiters_shift), cond_nwaiters(%rdi)	/* Install cancellation handler.  */#ifdef PIC	leaq	__condvar_cleanup(%rip), %rsi#else	leaq	__condvar_cleanup, %rsi#endif	leaq	32(%rsp), %rdi	movq	%rsp, %rdx	callq	__pthread_cleanup_push	/* Get and store current wakeup_seq value.  */	movq	8(%rsp), %rdi	movq	wakeup_seq(%rdi), %r9	movl	broadcast_seq(%rdi), %edx	movq	%r9, 24(%rsp)	movl	%edx, 4(%rsp)	/* Unlock.  */8:	movl	cond_futex(%rdi), %r12d	LOCK#if cond_lock == 0	decl	(%rdi)#else	decl	cond_lock(%rdi)#endif	jne	3f4:	callq	__pthread_enable_asynccancel	movl	%eax, (%rsp)	movq	8(%rsp), %rdi	xorq	%r10, %r10	movq	%r12, %rdx	addq	$cond_futex-cond_lock, %rdi	cmpq	$-1, dep_mutex-cond_futex(%rdi)#ifdef __ASSUME_PRIVATE_FUTEX	movl	$FUTEX_WAIT, %eax	movl	$(FUTEX_WAIT|FUTEX_PRIVATE_FLAG), %esi	cmove	%eax, %esi#else	movl	$FUTEX_WAIT, %eax	movl	%fs:PRIVATE_FUTEX, %esi	cmove	%eax, %esi# if FUTEX_WAIT != 0	orl	$FUTEX_WAIT, %esi# endif#endif	movl	$SYS_futex, %eax	syscall	movl	(%rsp), %edi	callq	__pthread_disable_asynccancel	/* Lock.  */	movq	8(%rsp), %rdi	movl	$1, %esi	xorl	%eax, %eax	LOCK#if cond_lock == 0	cmpxchgl %esi, (%rdi)#else	cmpxchgl %esi, cond_lock(%rdi)#endif	jnz	5f6:	movl	broadcast_seq(%rdi), %edx	movq	woken_seq(%rdi), %rax	movq	wakeup_seq(%rdi), %r9	cmpl	4(%rsp), %edx	jne	16f	cmpq	24(%rsp), %r9	jbe	8b	cmpq	%rax, %r9	jna	8b	incq	woken_seq(%rdi)	/* Unlock */16:	subl	$(1 << nwaiters_shift), cond_nwaiters(%rdi)	/* Wake up a thread which wants to destroy the condvar object.  */	cmpq	$0xffffffffffffffff, total_seq(%rdi)	jne	17f	movl	cond_nwaiters(%rdi), %eax	andl	$~((1 << nwaiters_shift) - 1), %eax	jne	17f	addq	$cond_nwaiters, %rdi	cmpq	$-1, dep_mutex-cond_nwaiters(%rdi)	movl	$1, %edx#ifdef __ASSUME_PRIVATE_FUTEX	movl	$FUTEX_WAKE, %eax	movl	$(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), %esi	cmove	%eax, %esi#else	movl	$0, %eax	movl	%fs:PRIVATE_FUTEX, %esi	cmove	%eax, %esi	orl	$FUTEX_WAKE, %esi#endif	movl	$SYS_futex, %eax	syscall	subq	$cond_nwaiters, %rdi17:	LOCK#if cond_lock == 0	decl	(%rdi)#else	decl	cond_lock(%rdi)#endif	jne	10f	/* Remove cancellation handler.  */11:	movq	32+CLEANUP_PREV(%rsp), %rdx	movq	%rdx, %fs:CLEANUP	movq	16(%rsp), %rdi	callq	__pthread_mutex_cond_lock14:	addq	$FRAME_SIZE, %rsp.Laddq:	popq	%r12.Lpop_r12:	/* We return the result of the mutex_lock operation.  */	retq	/* Initial locking failed.  */1:.LSbl1:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_lock_wait	jmp	2b	/* Unlock in loop requires wakeup.  */3:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_unlock_wake	jmp	4b	/* Locking in loop failed.  */5:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_lock_wait#if cond_lock != 0	subq	$cond_lock, %rdi#endif	jmp	6b	/* Unlock after loop requires wakeup.  */10:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_unlock_wake	jmp	11b	/* The initial unlocking of the mutex failed.  */12:	movq	%rax, %r10	movq	8(%rsp), %rdi	LOCK#if cond_lock == 0	decl	(%rdi)#else	decl	cond_lock(%rdi)#endif	je	13f#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_unlock_wake13:	movq	%r10, %rax	jmp	14b.LENDCODE:	.size	__pthread_cond_wait, .-__pthread_cond_waitversioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,		  GLIBC_2_3_2)	.section .eh_frame,"a",@progbits.LSTARTFRAME:	.long	L(ENDCIE)-L(STARTCIE)		# Length of the CIE..LSTARTCIE:	.long	0				# CIE ID.	.byte	1				# Version number.#ifdef SHARED	.string	"zR"				# NUL-terminated augmentation						# string.#else	.ascii	"\0"				# NUL-terminated augmentation						# string.#endif	.uleb128 1				# Code alignment factor.	.sleb128 -8				# Data alignment factor.	.byte	16				# Return address register						# column.#ifdef SHARED	.uleb128 1				# Augmentation value length.	.byte	0x1b				# Encoding: DW_EH_PE_pcrel						# + DW_EH_PE_sdata4.#endif	.byte 0x0c				# DW_CFA_def_cfa	.uleb128 7	.uleb128 8	.byte	0x90				# DW_CFA_offset, column 0x8	.uleb128 1	.align 8.LENDCIE:	.long	.LENDFDE-.LSTARTFDE		# Length of the FDE..LSTARTFDE:	.long	.LSTARTFDE-.LSTARTFRAME		# CIE pointer.#ifdef SHARED	.long	.LSTARTCODE-.			# PC-relative start address						# of the code#else	.long	.LSTARTCODE			# Start address of the code.#endif	.long	.LENDCODE-.LSTARTCODE		# Length of the code.#ifdef SHARED	.uleb128 0				# No augmentation data.#endif	.byte	0x40+.Lpush_r12-.LSTARTCODE	# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 16	.byte	0x8c				# DW_CFA_offset %r12	.uleb128 2	.byte	0x40+.Lsubq-.Lpush_r12		# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 16+FRAME_SIZE	.byte	3				# DW_CFA_advance_loc2	.2byte	.Laddq-.Lsubq	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 16	.byte	0x40+.Lpop_r12-.Laddq		# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 8	.byte	0xcc				# DW_CFA_restore %r12	.byte	0x40+.LSbl1-.Lpop_r12		# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 80	.byte	0x8c				# DW_CFA_offset %r12	.uleb128 2	.align	8.LENDFDE:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线不卡一区二区| 亚洲午夜激情av| 激情小说欧美图片| 91精品欧美综合在线观看最新| 中文字幕在线观看不卡| 国产成人午夜视频| 中文字幕欧美激情| 色综合婷婷久久| 亚洲成人av电影在线| 日韩女优制服丝袜电影| 国产伦精品一区二区三区视频青涩| 日韩欧美一二区| 国产成都精品91一区二区三 | 亚洲成a人在线观看| 日韩一区和二区| 国产在线不卡一区| 亚洲国产乱码最新视频 | 亚洲成人先锋电影| 日韩一级二级三级| 成人动漫在线一区| 久久草av在线| 亚洲国产欧美在线人成| 337p日本欧洲亚洲大胆精品| 成人激情校园春色| 日韩av一区二| 亚洲精品国产第一综合99久久 | 国产91精品入口| 亚洲图片欧美视频| 国产精品传媒视频| 精品剧情在线观看| 日本乱人伦aⅴ精品| 高清久久久久久| 麻豆精品在线看| 日韩精品免费视频人成| 亚洲精品视频观看| 国产精品久久久久7777按摩| 在线91免费看| 欧美性xxxxx极品少妇| 成人av手机在线观看| 激情国产一区二区| 精品一区二区三区久久久| 爽爽淫人综合网网站| 婷婷六月综合亚洲| 亚洲一级二级在线| 亚洲综合成人在线| 亚洲五码中文字幕| 日韩国产欧美视频| 亚洲午夜一区二区三区| 夜夜亚洲天天久久| 偷拍与自拍一区| 天使萌一区二区三区免费观看| 亚洲夂夂婷婷色拍ww47| 亚洲尤物在线视频观看| 亚洲夂夂婷婷色拍ww47| 一二三四区精品视频| 一本大道久久a久久精二百| 日本精品免费观看高清观看| 日本久久精品电影| 欧美一区2区视频在线观看| 精品国产露脸精彩对白| 久久综合久久鬼色中文字| 日韩美女视频一区二区| 午夜精品久久久久久| 精品亚洲porn| 色妞www精品视频| 91精选在线观看| 欧美激情一区不卡| 国产老妇另类xxxxx| 色综合一个色综合亚洲| 日韩一级成人av| 亚洲男帅同性gay1069| 国产一区二区久久| 色综合av在线| 26uuu欧美| 亚洲高清免费在线| 国产成人亚洲综合色影视| 色素色在线综合| 国产精品青草综合久久久久99| 免费在线看一区| 在线看国产一区二区| 国产亚洲va综合人人澡精品| 亚洲一区二区在线视频| 99久久国产综合精品色伊| 欧美mv和日韩mv的网站| 日本不卡一区二区三区| 欧美日韩美少妇| 亚洲精品国产成人久久av盗摄 | 欧美专区日韩专区| **网站欧美大片在线观看| 国产美女av一区二区三区| 666欧美在线视频| 无码av中文一区二区三区桃花岛| 91美女精品福利| 亚洲欧美二区三区| 色婷婷亚洲一区二区三区| 国产精品视频yy9299一区| 精久久久久久久久久久| 91精品国产综合久久久久久久| 亚洲国产精品一区二区久久恐怖片| 91麻豆蜜桃一区二区三区| 国产精品久久久久久久久免费桃花 | 国产激情91久久精品导航| 欧美va亚洲va香蕉在线 | 亚洲免费在线电影| 日本道色综合久久| 亚洲一级二级三级| 日韩视频免费直播| 国产精品自拍毛片| 一区二区中文视频| 欧美午夜电影在线播放| 日韩av一区二区三区| 国产婷婷色一区二区三区| 91片黄在线观看| 美女脱光内衣内裤视频久久影院| 欧美一级高清片| 91丨porny丨在线| 免费一级欧美片在线观看| 日韩美一区二区三区| eeuss鲁片一区二区三区| 日韩国产高清影视| 亚洲欧美另类久久久精品| 欧美成人aa大片| 91黄色免费网站| 国产一区二区调教| 一区二区久久久| 久久久噜噜噜久久中文字幕色伊伊| 99久久久久久| 国产精品456| 裸体健美xxxx欧美裸体表演| 亚洲毛片av在线| 国产精品对白交换视频| 久久久久久久国产精品影院| 欧美丰满高潮xxxx喷水动漫| 成人美女在线观看| 国产成人三级在线观看| 奇米精品一区二区三区在线观看一 | 韩国毛片一区二区三区| 日韩电影在线一区二区| 一区二区三区视频在线看| 国产精品麻豆欧美日韩ww| 久久综合色综合88| 精品少妇一区二区三区视频免付费 | 日韩av网站在线观看| 日韩精品亚洲一区| 日韩二区三区在线观看| 日本美女一区二区| 久色婷婷小香蕉久久| 国产乱子轮精品视频| 韩国av一区二区三区四区| 国产一区二区不卡在线| 国产精品1024| 色婷婷久久99综合精品jk白丝| 成人免费毛片高清视频| eeuss鲁片一区二区三区在线看 | 一级做a爱片久久| 日韩黄色免费网站| 国产精品影音先锋| 97久久人人超碰| 欧美日韩免费高清一区色橹橹| av激情成人网| 欧美日韩亚洲综合| 国产视频一区在线观看| 欧美国产欧美综合| 亚洲成人午夜电影| 国产成a人亚洲| 777久久久精品| 久久精品视频一区二区| 亚洲人快播电影网| 精品一区在线看| 欧美亚洲一区三区| 久久一夜天堂av一区二区三区| 国产精品久久久一本精品| 蜜桃精品视频在线观看| 欧洲人成人精品| 中文字幕欧美日本乱码一线二线| 亚洲高清久久久| 91在线播放网址| 国产亚洲欧美一区在线观看| 午夜精品福利一区二区蜜股av| fc2成人免费人成在线观看播放| 欧美精品一区二区三区在线| 亚洲国产一区在线观看| 99久久99久久免费精品蜜臀| 久久久九九九九| 老司机一区二区| 日韩欧美国产不卡| 秋霞成人午夜伦在线观看| 91九色最新地址| 亚洲国产日韩一级| 欧美一区二区在线视频| 亚洲高清免费视频| 色婷婷一区二区| 亚洲成年人网站在线观看| 欧美午夜电影网| 日韩国产一二三区| 亚洲精品一线二线三线无人区| 老司机精品视频在线| 91精品国产一区二区三区蜜臀 | 国产老肥熟一区二区三区| 日韩欧美久久久|