瀏覽代碼

Warning: when merging r8257, make sure to also apply the part of r8266
applicable to cSemaphoreTryWait


Merged revisions 8266 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

........
r8266 | jonas | 2007-08-12 10:29:48 +0200 (Sun, 12 Aug 2007) | 4 lines

* use initc.fpgetCerrno rather than fpgeterrno to get the errno
results of the sem_* routines (since those always come from libc/
libpthread)

........

git-svn-id: branches/fixes_2_2@8307 -

Jonas Maebe 18 年之前
父節點
當前提交
13b01e93ac
共有 1 個文件被更改,包括 6 次插入5 次删除
  1. 6 5
      rtl/unix/cthreads.pp

+ 6 - 5
rtl/unix/cthreads.pp

@@ -54,7 +54,8 @@ implementation
 Uses
   BaseUnix,
   unix,
-  unixtype
+  unixtype,
+  initc
 {$ifdef dynpthreads}
   ,dl
 {$endif}
@@ -403,7 +404,7 @@ begin
 {$if defined(has_sem_init) or defined(has_sem_open)}
   repeat
     res:=sem_wait(PSemaphore(FSem));
-    err:=fpgeterrno;
+    err:=fpgetCerrno;
   until (res<>-1) or (err<>ESysEINTR);
 {$else}
   repeat
@@ -440,7 +441,7 @@ var
 begin
   repeat
     cIntSemaphoreOpen := sem_open(name,O_CREAT,0,ord(initvalue));
-    err:=fpgeterrno;
+    err:=fpgetCerrno;
   until (ptrint(cIntSemaphoreOpen) <> SEM_FAILED) or (err <> ESysEINTR);
   if (ptrint(cIntSemaphoreOpen) <> SEM_FAILED) then
     { immediately unlink so the semaphore will be destroyed when the }
@@ -680,12 +681,12 @@ begin
         if Value=0 then
           cSemaphorePost(plocaleventstate(state)^.FSem);
       end
-    else if (fpgeterrno = ESysENOSYS) then
+    else if (fpgetCerrno = ESysENOSYS) then
       { not yet implemented on Mac OS X 10.4.8 }
       begin
         repeat
           res:=sem_trywait(psem_t(plocaleventstate(state)^.FSem));
-          err:=fpgeterrno;
+          err:=fpgetCerrno;
         until ((res<>-1) or (err<>ESysEINTR));
         { now we've either decreased the semaphore by 1 (if it was  }
         { not zero), or we've done nothing (if it was already zero) }