1function removefilesemaphore(semaphore)
2%REMOVEFILESEMAPHORE  Remove semaphore after file access.
3%   REMOVEFILESEMAPHORE(SEMAPHORE) removes the semaphore(s) set by function
4%   SETFILESEMAPHORE to allow file access for other Matlab processes.
5%
6%		Markus Buehren
7%		Last modified 13.11.2007
8%
9%   See also SETFILESEMAPHORE.
10
11% remove semaphore files
12for fileNr = 1:length(semaphore)
13	if exist(semaphore{fileNr}, 'file')
14		try
15			% do not use function deletewithsemaphores.m here!
16
17			% sometimes deletion permission is not given, so try several times to
18			% delete the file
19
20			fileDeleted = false;
21			warning off MATLAB:DELETE:Permission
22			for k=1:5
23				lastwarn('');
24				delete(semaphore{fileNr});
25				if isempty(lastwarn)
26					fileDeleted = true;
27					break
28				end
29			end
30			warning on  MATLAB:DELETE:Permission
31
32			if ~fileDeleted
33				% try one last time with display of warning message
34				delete(semaphore{fileNr});
35			end
36
37		catch
38			% in very very very unlikely cases two processes might have generated
39			% the same semaphore file name, in very very very very unlikely cases
40			% they might try to delete the file at the same time
41
42			% do nothing
43		end
44	end
45end
46