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

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

?? sdl_sysmutex.c

?? 視頻音頻編碼程序 視頻音頻編碼程序 視頻音頻編碼程序
?? C
字號:
/*
    SDL - Simple DirectMedia Layer
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This 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
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public
    License along with this library; if not, write to the Free
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    Sam Lantinga
    slouken@libsdl.org
*/

#ifdef SAVE_RCSID
static char rcsid =
 "@(#) $Id: SDL_sysmutex.c,v 1.4 2002/04/22 21:38:03 wmay Exp $";
#endif

/* An implementation of mutexes using semaphores */

#include <stdio.h>
#include <stdlib.h>

#include "SDL_error.h"
#include "SDL_thread.h"
#include "SDL_systhread_c.h"


struct SDL_mutex {
	int recursive;
	Uint32 owner;
	SDL_sem *sem;
};

/* Create a mutex */
SDL_mutex *SDL_CreateMutex(void)
{
	SDL_mutex *mutex;

	/* Allocate mutex memory */
	mutex = (SDL_mutex *)malloc(sizeof(*mutex));
	if ( mutex ) {
		/* Create the mutex semaphore, with initial value 1 */
		mutex->sem = SDL_CreateSemaphore(1);
		mutex->recursive = 0;
		mutex->owner = 0;
		if ( ! mutex->sem ) {
			free(mutex);
			mutex = NULL;
		}
	} else {
		SDL_OutOfMemory();
	}
	return mutex;
}

/* Free the mutex */
void SDL_DestroyMutex(SDL_mutex *mutex)
{
	if ( mutex ) {
		if ( mutex->sem ) {
			SDL_DestroySemaphore(mutex->sem);
		}
		free(mutex);
	}
}

/* Lock the semaphore */
int SDL_mutexP(SDL_mutex *mutex)
{
#ifdef DISABLE_THREADS
	return 0;
#else
	Uint32 this_thread;

	if ( mutex == NULL ) {
		SDL_SetError("Passed a NULL mutex");
		return -1;
	}

	this_thread = SDL_ThreadID();
	if ( mutex->owner == this_thread ) {
		++mutex->recursive;
	} else {
		/* The order of operations is important.
		   We set the locking thread id after we obtain the lock
		   so unlocks from other threads will fail.
		*/
		SDL_SemWait(mutex->sem);
		mutex->owner = this_thread;
		mutex->recursive = 0;
	}

	return 0;
#endif /* DISABLE_THREADS */
}

/* Unlock the mutex */
int SDL_mutexV(SDL_mutex *mutex)
{
#ifdef DISABLE_THREADS
	return 0;
#else
	if ( mutex == NULL ) {
		SDL_SetError("Passed a NULL mutex");
		return -1;
	}

	/* If we don't own the mutex, we can't unlock it */
	if ( SDL_ThreadID() != mutex->owner ) {
		SDL_SetError("mutex not owned by this thread");
		return -1;
	}

	if ( mutex->recursive ) {
		--mutex->recursive;
	} else {
		/* The order of operations is important.
		   First reset the owner so another thread doesn't lock
		   the mutex and set the ownership before we reset it,
		   then release the lock semaphore.
		 */
		mutex->owner = 0;
		SDL_SemPost(mutex->sem);
	}
	return 0;
#endif /* DISABLE_THREADS */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一级视频在线观看| 欧美日韩中字一区| 制服视频三区第一页精品| 国产精品久久久久久久久晋中 | 欧美精品xxxxbbbb| 亚洲网友自拍偷拍| 欧美专区日韩专区| 天堂一区二区在线| 777午夜精品视频在线播放| 亚洲精品日产精品乱码不卡| 91视频在线观看免费| 亚洲日本一区二区三区| 亚洲成人精品在线观看| 亚洲精品在线观看网站| 黑人巨大精品欧美一区| 久久久国产精华| 成人国产精品免费观看视频| 国产欧美日韩视频在线观看| www.久久久久久久久| 亚洲观看高清完整版在线观看| 在线观看一区日韩| 九九**精品视频免费播放| 国产午夜精品一区二区三区四区| 成人黄页毛片网站| 日韩精品三区四区| 国产女人18毛片水真多成人如厕 | 一区二区三区丝袜| 欧美日韩一级二级三级| 国产成人欧美日韩在线电影| 成人免费一区二区三区视频| 欧美人与禽zozo性伦| 免播放器亚洲一区| 欧美视频精品在线| 国产在线观看一区二区| 国产视频一区不卡| 欧美亚洲国产bt| 国产一区二区三区四区在线观看| 国产精品视频一二三| 欧美日韩的一区二区| 国产二区国产一区在线观看| 亚洲免费高清视频在线| 国产精品传媒在线| 国产精品美女久久久久久久久 | 国产成人亚洲精品狼色在线 | 欧美激情资源网| 91蝌蚪porny| 国产精品自拍一区| 亚洲高清三级视频| 亚洲欧洲av在线| 26uuu国产一区二区三区| 欧美性欧美巨大黑白大战| 性久久久久久久久久久久| 国产女人18毛片水真多成人如厕| 蜜桃传媒麻豆第一区在线观看| 欧美嫩在线观看| 福利一区二区在线| 国产一区二区在线观看视频| 性做久久久久久免费观看| xnxx国产精品| 精品对白一区国产伦| 欧美一区二区二区| 91精品国产综合久久国产大片| 色视频一区二区| 欧美少妇xxx| 日韩一区二区三区视频在线观看| 欧美色视频在线观看| 欧美亚洲一区三区| 在线观看一区二区视频| 欧美猛男男办公室激情| 久久视频一区二区| 亚洲美女视频在线观看| 亚洲天堂中文字幕| 亚洲精品福利视频网站| 亚洲图片有声小说| 日产国产欧美视频一区精品| 日韩成人午夜精品| 激情六月婷婷综合| 91在线观看免费视频| 欧美日韩1区2区| 日本一区二区三区在线观看| 中文字幕av不卡| 香蕉加勒比综合久久| 国内精品免费**视频| 91在线视频免费91| 69av一区二区三区| 亚洲三级久久久| 久久精品国产亚洲一区二区三区| 国产麻豆欧美日韩一区| 91精品福利视频| 日本一区二区三区在线不卡| 亚洲自拍欧美精品| 国产成人av一区二区三区在线| 欧美日韩一区中文字幕| 久久久精品国产免大香伊| 亚洲一区日韩精品中文字幕| 久久99精品久久久| 欧美老人xxxx18| 樱桃视频在线观看一区| 91亚洲精品乱码久久久久久蜜桃| 精品久久国产字幕高潮| 亚洲国产精品人人做人人爽| 韩国中文字幕2020精品| 欧美精品少妇一区二区三区| 一区二区三区影院| 91在线看国产| 国产日韩欧美亚洲| 国产精品一二一区| 欧美精品一区二区蜜臀亚洲| 麻豆91精品视频| 日韩免费在线观看| 久久超碰97中文字幕| 欧美日韩日本视频| 日产精品久久久久久久性色| 欧美一区二区在线播放| 久久不见久久见中文字幕免费| 欧美亚洲国产一区二区三区va| 亚洲精品视频在线观看网站| 不卡大黄网站免费看| 国产精品久久久久久久久搜平片| 91免费看`日韩一区二区| 亚洲视频精选在线| 欧美日韩在线三级| 蜜臀va亚洲va欧美va天堂 | 亚洲成av人片一区二区梦乃| 欧美日韩国产综合久久| 激情文学综合丁香| 亚洲欧洲av色图| 欧美一级视频精品观看| 国产精品资源站在线| 亚洲美女视频在线观看| 日韩精品一区二区三区在线| 99麻豆久久久国产精品免费优播| 亚洲激情自拍视频| 在线亚洲免费视频| 亚洲成人精品一区| 国产精品午夜免费| 最新久久zyz资源站| 欧美日韩一区二区欧美激情| 精品一区在线看| 亚洲男女毛片无遮挡| 亚洲精品一区二区三区四区高清| 91啪亚洲精品| 日韩电影在线观看电影| 亚洲免费观看高清完整版在线观看| 久久亚洲一区二区三区明星换脸| 99免费精品在线| 欧美三电影在线| 美女视频黄久久| 香蕉久久夜色精品国产使用方法 | 国产亚洲欧洲997久久综合 | 91精品国产综合久久久久久| 国产sm精品调教视频网站| 一区二区三区欧美日韩| 亚洲美女精品一区| 亚洲欧美日韩国产一区二区三区| 中文字幕精品综合| 国产精品伦理在线| 亚洲丝袜精品丝袜在线| 中文字幕中文字幕在线一区| 亚洲成人av电影在线| 日韩久久一区二区| 精品国产乱码久久久久久1区2区 | 亚洲久本草在线中文字幕| 91福利视频久久久久| 日本欧美一区二区在线观看| 91精品国产一区二区| 欧美嫩在线观看| 制服丝袜在线91| 日韩免费电影一区| 亚洲另类在线制服丝袜| 天天综合网天天综合色| 麻豆精品新av中文字幕| 国产成都精品91一区二区三| 欧美日韩日本视频| 国产精品久久久一本精品| 亚洲综合精品自拍| 懂色av中文字幕一区二区三区| 欧美日韩一本到| 久久精品男人天堂av| 一区二区三区欧美久久| 成人免费的视频| 日韩欧美一二区| 亚洲欧美另类在线| 国产精品一区二区91| 日韩色视频在线观看| 一区二区三区蜜桃| 色哟哟国产精品免费观看| 国产欧美一区二区精品秋霞影院| 一区二区视频在线| 成人黄页毛片网站| 国产日韩欧美麻豆| 激情久久五月天| 欧美私人免费视频| 污片在线观看一区二区| 在线亚洲高清视频| 一区二区三区四区精品在线视频| 成人网男人的天堂| 国产精品国产三级国产a| 美女网站色91| 欧美v国产在线一区二区三区|