* fixed some unix stuff

This commit is contained in:
florian 2005-04-09 18:45:43 +00:00
parent e0b41f120a
commit 90a26e0f7d

View File

@ -551,8 +551,24 @@ begin
pthread_mutex_unlock(@p^.mutex);
end;
procedure intRTLEventWaitForTimeout(AEvent: PRTLEvent;timeout : longint);
var
p : pintrtlevent;
errres : cint;
timespec : ttimespec;
begin
p:=pintrtlevent(aevent);
timespec.tv_sec:=timeout div 1000;
timespec.tv_nsec:=(timeout mod 1000)*1000000;
errres:=pthread_cond_timedwait(@p^.condvar, @p^.mutex, @timespec);
if (errres=0) or (errres=ESysETIMEDOUT) then
pthread_mutex_unlock(@p^.mutex);
end;
type
tthreadmethod = procedure of object;
threadmethod = procedure of object;
Function CInitThreads : Boolean;
@ -621,7 +637,9 @@ begin
rtlEventCreate :=@intrtlEventCreate;
rtlEventDestroy :=@intrtlEventDestroy;
rtlEventSetEvent :=@intrtlEventSetEvent;
rtlEventResetEvent :=@intrtlEventResetEvent;
rtlEventStartWait :=@intrtlEventStartWait;
rtleventWaitForTimeout :=@intrtleventWaitForTimeout;
rtleventWaitFor :=@intrtleventWaitFor;
end;
SetThreadManager(CThreadManager);
@ -641,7 +659,10 @@ finalization
end.
{
$Log$
Revision 1.26 2005-04-09 17:26:08 florian
Revision 1.27 2005-04-09 18:45:43 florian
* fixed some unix stuff
Revision 1.26 2005/04/09 17:26:08 florian
+ classes.mainthreadid is set now
+ rtleventresetevent
+ rtleventwairfor with timeout