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