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

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

?? setfilesemaphore.m

?? 非常好的差分進化matlab程序
?? M
字號:
function semaphore = setfilesemaphore(fileList)
%SETFILESEMAPHORE  Set semaphore for file access.
%		SEMAPHORE = SETFILESEMAPHORE(FILENAME) sets a semaphore to get
%		exclusive access on file FILE. The semaphore is realized by generating
%		a simple Matlab data file after checking that no other semaphores are
%		existing. The function exits if the semaphore is set. Exclusive file
%		access is of course only guaranteed if all other Matlab processes use
%		semaphores to access the same file.
%
%		The output variable SEMAPHORE is needed to correctly remove the file
%		semaphore after file access. It is an error to call function
%		SETFILESEMAPHORE without output arguments.
%
%		SEMAPHORE = SETFILESEMAPHORE(FILELIST) sets semaphores for all files
%		given in cell array FILELIST. Note that function SETFILESEMAPHORE waits
%		for exclusive file access on ALL files in the list before exiting.
%
%		Note: A semaphore older than 20 seconds is considered as invalid and
%		will immediately be deleted.
%		
%		Example:
%		sem = setfilesemaphore('test.mat');
%		% access file test.mat here
%		dir test.mat.semaphore.*
%		removefilesemaphore(sem);
%
%		Markus Buehren
%		Last modified 21.04.2008 
%
%		See also REMOVEFILESEMAPHORE.

persistent filesToIgnore

% set times (all in seconds)
semaphoreOldTime = 30;
fixedWaitTime    = 0.01;
checkWaitTime    = 0.1;
waitInfoPeriod   = 5;
maxRandomTime    = 0.3;

if nargout ~= 1
	error('Function %s must be called with one output argument!', mfilename);
end

if ischar(fileList)
	% single file given
	fileList = {fileList};
end

nOfFiles = length(fileList);
semaphore = cell(nOfFiles, 1);
for fileNr = 1:nOfFiles
	
	fileName = fileList{fileNr};

	% check if given file is itself a semaphore file
	if ~isempty(regexp(fileName, '\.semaphore\.\w+\.\d{32}\.mat$', 'once'))
		semaphore{fileNr, 1} = '';
		continue
	end

	% generate semaphore file name and pattern
	[ignore, randomStr] = generaterandomnumber; %#ok
	semaphoreFileName = [fileName, '.semaphore.', gethostname, '.', randomStr, '.mat'];
	semaphorePattern  = [fileName, '.semaphore.*.mat'];
	semaphorePatternPath = fileparts(semaphorePattern);

	startWaitTime   = now;
	displayWaitInfo = true;
	while 1
		dirStruct = dir(semaphorePattern);
		
		if ~isempty(dirStruct)
			% other semaphore file(s) existing
			% check if any semaphore is very old
			allSemaphoresOld = true;
			for k=1:length(dirStruct)
				if now - datenum2(dirStruct(k).date) > semaphoreOldTime / (3600*24)
					oldSemaphoreFileName = concatpath(semaphorePatternPath, dirStruct(k).name);
					
					% avoid to issue more than one warning for each file
					ignoreThisFile = ismember(oldSemaphoreFileName, filesToIgnore);						 
					if ~ignoreThisFile 
						filesToIgnore{end+1} = oldSemaphoreFileName; %#ok
						% limit the number of saved files
						if length(filesToIgnore) > 2000
							filesToIgnore = filesToIgnore(end-1000:end);
						end
					end
					
					% turn off file permission warnings
					warnID = 'MATLAB:DELETE:Permission';
					warnState = warning('query', warnID);
					warning('off', warnID);
					if existfile(oldSemaphoreFileName)

						% try to remove semaphore
						lastwarn('');
						try
							% deletion may cause an error or a file permission warning
							delete(oldSemaphoreFileName);
						catch
							if ~ignoreThisFile
								disp(textwrap2(sprintf('Warning: Error occured in removing old semaphore of file %s.', fileName)));
							end
						end
						% check last warning
						if ~ignoreThisFile
							[lastMsg, lastID] = lastwarn;
							if strcmp(lastID, warnID)
								disp(textwrap2(sprintf('Warning: Unable to remove old semaphore of file %s.', fileName)));
							end
						end
					end
					warning(warnState);
				else
					allSemaphoresOld = false;
				end
			end
			
			if allSemaphoresOld
				continue
			end

			% display info
			if displayWaitInfo && (now - startWaitTime)*86400 >= waitInfoPeriod
				disp(sprintf('Waiting for semaphore of file %s to disappear.', fileName));
				displayWaitInfo = false;
			end				
			
			% wait before checking again
			pause(checkWaitTime);
			
		else
			% set own semaphore file
			try
 				save(semaphoreFileName, 'randomStr');
				%fclose(fopen(semaphoreFileName, 'w'));
			catch
				disp(sprintf('An error occured while accessing semaphore file %s:', semaphoreFileName));
				displayerrorstruct;
				
				% in very very very unlikely cases two processes might have
				% generated the same semaphore file name
				[randomNr, randomStr] = generaterandomnumber; %#ok
				pause(0.2+maxRandomTime * randomNr);
				semaphoreFileName = [fileName, '.semaphore.', gethostname, '.', randomStr, '.mat'];
				%save(semaphoreFileName, 'randomStr');
				[fid, message] = fopen(semaphoreFileName, 'w');
				if fid == -1
					disp(message);
				else
					fclose(fid);
				end					
			end
			
			% wait fixed time
			pause(fixedWaitTime);

			% in very unlikely cases, two semaphore files might have been created
			% at the same time
			dirStruct = dir(semaphorePattern);
			if length(dirStruct) > 1
				% remove own semaphore file
				delete(semaphoreFileName);

				% wait RANDOM time before checking again
				pause(maxRandomTime * generaterandomnumber);

			else
				% exclusive file access is guaranteed
				% save semaphore file name and leave while loop
				semaphore{fileNr, 1} = semaphoreFileName;
				break
			end
		end % if ~isempty(dirStruct)
	end % while 1
end % for fileNr = 1:nOfFiles

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [randomNr, randomStr] = generaterandomnumber
%GENERATERANDOMNUMBER
% in very unlikely cases, it might happen that the random states of rand
% and randn are equal in two Matlab processes calling function
%   SETSEMAPHORE. For this reason, the system and cpu time are used to
%   create different random numbers even in this unlikely case.
%
%		This all were not necessary if it were possible to get some sort of a
%		Matlab process ID.

nOfDigits = 8; % length of random string will be 4*nOfDigits

randNr    = rand;
randnNr   = mod(randn+0.5, 1);
cputimeNr = mod(cputime, 100)/100;
nowNr     = mod(rem(now,1)*3600*24, 100)/100;

% random number is used for random pause after conflict
randomNr = 0.25 * (randNr + randnNr + cputimeNr + nowNr);

% random string is used for the semaphore file name
if nargout > 1
	ee = 10^nOfDigits;
	randomStr = [...
		num2str(ee * randNr,    '%.0f'), ...
		num2str(ee * randnNr,   '%.0f'), ...
		num2str(ee * cputimeNr, '%.0f'), ...
		num2str(ee * nowNr,     '%.0f'), ...
		];
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色视频成人在线观看免| 极品美女销魂一区二区三区免费| 2021国产精品久久精品| 欧美日韩国产在线观看| 欧美日韩免费在线视频| 在线免费不卡电影| 欧美性一二三区| 欧美性生活大片视频| 欧美日韩亚洲综合| 欧美高清视频在线高清观看mv色露露十八| 欧美日韩国产综合一区二区三区| 欧美日韩亚洲国产综合| 日韩一区二区三区免费观看| 欧美精品一区二区三区四区 | 久久综合九色综合97婷婷女人| 日韩亚洲欧美中文三级| 久久影视一区二区| 亚洲欧洲精品一区二区精品久久久 | 一区二区在线观看免费视频播放| 亚洲精品视频在线| 亚洲电影一级片| 精品一区二区三区免费毛片爱| 国产精品自拍在线| 成人永久aaa| 欧美亚洲国产bt| 日韩欧美区一区二| 国产精品色眯眯| 污片在线观看一区二区| 九九在线精品视频| 91网上在线视频| 欧美va天堂va视频va在线| 国产欧美日韩一区二区三区在线观看 | 日韩三级视频中文字幕| 国产天堂亚洲国产碰碰| 一区二区三区 在线观看视频| 首页亚洲欧美制服丝腿| 国产精品一区二区免费不卡| 一本到高清视频免费精品| 日韩三级中文字幕| 亚洲视频精选在线| 国产在线视频一区二区三区| 在线看不卡av| 国产亚洲精品超碰| 欧美日韩免费不卡视频一区二区三区| 日韩欧美中文字幕公布| 亚洲精品一区二区三区99| 日本一区二区三区免费乱视频| 一区二区激情视频| 韩国成人福利片在线播放| 色婷婷综合中文久久一本| 精品奇米国产一区二区三区| 亚洲最大成人网4388xx| 国产一区二区三区四| 欧美三级一区二区| 国产精品乱码久久久久久| 免播放器亚洲一区| 欧美亚洲综合另类| 欧美韩国日本不卡| 精品一区二区在线看| 91精品国产美女浴室洗澡无遮挡| 亚洲欧美日韩电影| 成人a免费在线看| 国产日韩综合av| 韩国欧美国产一区| 精品乱人伦小说| 激情图片小说一区| 欧美二区在线观看| 亚洲一级在线观看| 在线观看免费成人| 亚洲在线视频免费观看| 色综合久久88色综合天天免费| 国产精品电影一区二区三区| 成人深夜福利app| 亚洲欧美怡红院| av在线播放不卡| 亚洲欧美韩国综合色| 色综合婷婷久久| 亚洲综合久久av| 91超碰这里只有精品国产| 亚洲妇熟xx妇色黄| 欧美日韩精品专区| 日韩在线a电影| 精品国产伦一区二区三区免费| 免费看日韩a级影片| 欧美r级在线观看| 国产成a人亚洲精品| 最新日韩av在线| 欧美精品乱码久久久久久按摩| 午夜视频久久久久久| 日韩欧美一区在线| 国产精品一卡二卡在线观看| 中文字幕乱码亚洲精品一区| 波多野结衣在线aⅴ中文字幕不卡| 中文字幕一区二区三区在线播放| 91免费国产视频网站| 午夜精品久久久久影视| 欧美成人免费网站| av成人免费在线| 午夜久久久影院| 国产婷婷色一区二区三区四区| 91婷婷韩国欧美一区二区| 亚洲国产精品欧美一二99| 日韩无一区二区| 99久久99久久精品国产片果冻| 午夜影院久久久| 久久久精品中文字幕麻豆发布| 99久久免费视频.com| 五月综合激情婷婷六月色窝| 国产欧美日韩综合| 欧美性大战久久久| 国产精品夜夜嗨| 视频一区二区国产| 欧美激情一区二区三区不卡 | 成人av在线资源| 亚洲国产日韩a在线播放| 精品欧美乱码久久久久久| av不卡在线观看| 国产在线视频一区二区三区| 亚洲国产日韩一区二区| 国产亚洲欧美中文| 日韩一级在线观看| 在线观看欧美精品| 成人精品一区二区三区中文字幕| 丝袜亚洲另类欧美| 亚洲欧美在线视频| 久久精品人人爽人人爽| 欧美精品三级日韩久久| 91亚洲午夜精品久久久久久| 国产精品综合在线视频| 丝瓜av网站精品一区二区| 亚洲精品乱码久久久久久| 国产亚洲一区二区三区四区| 欧美成人精品高清在线播放| 欧美日本国产视频| 色天天综合色天天久久| 国产a精品视频| 国产精品一区二区久久精品爱涩| 亚洲综合色网站| 国产精品欧美极品| 欧美色男人天堂| 洋洋av久久久久久久一区| 久久久久久综合| 精品国产成人在线影院| 91精品久久久久久久久99蜜臂| 色婷婷狠狠综合| 色噜噜夜夜夜综合网| www.欧美.com| 91在线视频18| 色综合久久中文综合久久97| 成人av手机在线观看| 国产99久久久精品| 大尺度一区二区| 99久久久精品| 欧美最猛黑人xxxxx猛交| av中文字幕一区| 一本大道av伊人久久综合| 99久久精品免费精品国产| 北条麻妃国产九九精品视频| 99re热视频这里只精品| 91偷拍与自偷拍精品| 色婷婷精品大视频在线蜜桃视频| 在线一区二区观看| 欧美日韩的一区二区| 欧美精品高清视频| 日韩欧美一级特黄在线播放| 久久精品一区四区| 中文字幕亚洲电影| 一区二区三区四区av| 午夜私人影院久久久久| 日韩国产欧美在线视频| 精品一区二区日韩| 粉嫩久久99精品久久久久久夜| 99精品在线观看视频| 欧美日韩在线精品一区二区三区激情 | 欧美日韩一区 二区 三区 久久精品| 欧美久久久久久久久久| 精品粉嫩超白一线天av| 日韩一区中文字幕| 亚洲风情在线资源站| 精品一区二区在线观看| a亚洲天堂av| 欧美一区二区黄色| 国产日产欧产精品推荐色| 亚洲日本一区二区| 免费欧美日韩国产三级电影| 成人免费看视频| 欧美一区午夜精品| 国产精品久久久久久久久免费樱桃 | 日韩精彩视频在线观看| 激情综合色综合久久| 92精品国产成人观看免费| 91精品国产91热久久久做人人| 久久久综合网站| 亚洲资源中文字幕| 国产激情视频一区二区在线观看| 欧美无砖砖区免费| 国产嫩草影院久久久久| 午夜成人免费视频| 91麻豆精品国产| 一区二区三区影院|