Call Errno2noutres if system call to close the handle fails in do_close for win and unix

git-svn-id: trunk@29095 -
This commit is contained in:
pierre 2014-11-20 22:00:35 +00:00
parent 260c6583cf
commit 90537e94a0
4 changed files with 14 additions and 7 deletions

View File

@ -2197,13 +2197,15 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS) SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS) $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR) $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
objpas$(PPUEXT): objpas.pp $(COMPILER) $(INC)/uuchar.pp $(REDIR)
objpas$(PPUEXT) : objpas.pp
$(COMPILER) objpas.pp $(REDIR) $(COMPILER) objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \ strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
$(SYSTEMUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas $(COMPILER) $(INC)/strings.pp $(REDIR)
jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
$(SYSTEMUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)

View File

@ -84,16 +84,18 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS) $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR) $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
$(COMPILER) $(INC)/uuchar.pp $(REDIR)
objpas$(PPUEXT): objpas.pp objpas$(PPUEXT) : objpas.pp
$(COMPILER) objpas.pp $(REDIR) $(COMPILER) objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \ strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
$(SYSTEMUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(INC)/strings.pp $(REDIR)
jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
# #
# System Dependent Units # System Dependent Units

View File

@ -20,6 +20,8 @@ Begin
repeat repeat
res:=Fpclose(cint(Handle)); res:=Fpclose(cint(Handle));
until (res<>-1) or (geterrno<>ESysEINTR); until (res<>-1) or (geterrno<>ESysEINTR);
if res<>0 then
Errno2Inoutres;
End; End;
Procedure Do_Erase(p: pchar; pchangeable: boolean); Procedure Do_Erase(p: pchar; pchangeable: boolean);

View File

@ -28,7 +28,8 @@ procedure do_close(h : thandle);
begin begin
if do_isdevice(h) then if do_isdevice(h) then
exit; exit;
CloseHandle(h); if CloseHandle(h)=0 then
Errno2InOutRes(GetLastError);
end; end;