Преглед изворни кода

* generic tthread.synchronize
* delphi compatible wakemainthread

florian пре 20 година
родитељ
комит
44b332f82a

+ 5 - 5
rtl/darwin/tthread.inc

@@ -279,10 +279,6 @@ begin
       Result := I;
       Result := I;
 end;
 end;
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-{$TODO someone with more clue of the GUI stuff will have to do this}
-end;
 
 
 procedure TThread.SetPriority(Value: TThreadPriority);
 procedure TThread.SetPriority(Value: TThreadPriority);
 begin
 begin
@@ -291,7 +287,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2005-02-14 17:13:22  peter
+  Revision 1.5  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.4  2005/02/14 17:13:22  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 33
rtl/freebsd/tthread.inc

@@ -243,16 +243,6 @@ begin
 end;
 end;
 
 
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-  FSynchronizeException := nil;
-  FMethod := Method;
-{  SendMessage(ThreadWindow, CM_EXECPROC, 0, Longint(Self)); }
-  if Assigned(FSynchronizeException) then
-    raise FSynchronizeException;
-end;
-
-
 procedure TThread.SetSuspended(Value: Boolean);
 procedure TThread.SetSuspended(Value: Boolean);
 begin
 begin
   if Value <> FSuspended then
   if Value <> FSuspended then
@@ -593,28 +583,6 @@ begin
       Result := I;
       Result := I;
 end;
 end;
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-var
-  LocalSyncException: Exception;
-begin
-  if SynchronizeMethodProc = nil then
-    { raise some error? }
-    exit;
-  rtleventsync(trtlmethod(method),synchronizemethodproc);
-{
-  EnterCriticalSection(SynchronizeCritSect);
-  SynchronizeMethod := Method;
-  SynchronizeException := nil;
-  SynchronizeMethodProc;
-  // wait infinitely
-  RtlEventWaitFor(ExecuteEvent);
-  SynchronizeMethod := nil;
-  LocalSyncException := SynchronizeException;
-  LeaveCriticalSection(SynchronizeCritSect);
-  if LocalSyncException <> nil then
-    raise LocalSyncException;
-}
-end;
 
 
 procedure TThread.SetPriority(Value: TThreadPriority);
 procedure TThread.SetPriority(Value: TThreadPriority);
 begin
 begin
@@ -624,7 +592,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.13  2005-02-14 17:13:22  peter
+  Revision 1.14  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.13  2005/02/14 17:13:22  peter
     * truncate log
     * truncate log
 
 
   Revision 1.12  2005/02/06 12:16:52  peter
   Revision 1.12  2005/02/06 12:16:52  peter

+ 5 - 7
rtl/go32v2/tthread.inc

@@ -47,12 +47,6 @@ begin
 end;
 end;
 
 
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-
-begin
-end;
-
-
 constructor TThread.Create(CreateSuspended: Boolean);
 constructor TThread.Create(CreateSuspended: Boolean);
 
 
 begin
 begin
@@ -93,7 +87,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2005-02-14 17:13:22  peter
+  Revision 1.3  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.2  2005/02/14 17:13:22  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 10
rtl/linux/tthread.inc

@@ -313,15 +313,6 @@ begin
       Result := I;
       Result := I;
 end;
 end;
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-var
-  LocalSyncException: Exception;
-begin
-  if SynchronizeMethodProc = nil then
-    { raise some error? }
-    exit;
-  rtleventsync(trtlmethod(method),synchronizemethodproc);
-end;
 
 
 procedure TThread.SetPriority(Value: TThreadPriority);
 procedure TThread.SetPriority(Value: TThreadPriority);
 begin
 begin
@@ -330,7 +321,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.12  2005-02-14 17:13:30  peter
+  Revision 1.13  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.12  2005/02/14 17:13:30  peter
     * truncate log
     * truncate log
 
 
   Revision 1.11  2005/02/06 11:20:52  peter
   Revision 1.11  2005/02/06 11:20:52  peter

+ 5 - 6
rtl/morphos/tthread.inc

@@ -92,11 +92,6 @@ begin
 end;
 end;
 
 
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-end;
-
-
 function ThreadProc(Args: pointer): Integer; cdecl;
 function ThreadProc(Args: pointer): Integer; cdecl;
 var
 var
   FreeThread: Boolean;
   FreeThread: Boolean;
@@ -183,7 +178,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2005-02-14 17:13:30  peter
+  Revision 1.3  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.2  2005/02/14 17:13:30  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 15
rtl/netbsd/tthread.inc

@@ -243,16 +243,6 @@ begin
 end;
 end;
 
 
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-  FSynchronizeException := nil;
-  FMethod := Method;
-{  SendMessage(ThreadWindow, CM_EXECPROC, 0, Longint(Self)); }
-  if Assigned(FSynchronizeException) then
-    raise FSynchronizeException;
-end;
-
-
 procedure TThread.SetSuspended(Value: Boolean);
 procedure TThread.SetSuspended(Value: Boolean);
 begin
 begin
   if Value <> FSuspended then
   if Value <> FSuspended then
@@ -593,10 +583,6 @@ begin
       Result := I;
       Result := I;
 end;
 end;
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-{$TODO someone with more clue of the GUI stuff will have to do this}
-end;
 
 
 procedure TThread.SetPriority(Value: TThreadPriority);
 procedure TThread.SetPriority(Value: TThreadPriority);
 begin
 begin
@@ -606,7 +592,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2005-02-14 17:13:30  peter
+  Revision 1.4  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.3  2005/02/14 17:13:30  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 14
rtl/netware/tthread.inc

@@ -217,19 +217,6 @@ begin
   ThreadSetPriority(FHandle, Priorities[Value]);
   ThreadSetPriority(FHandle, Priorities[Value]);
 end;
 end;
 
 
-{does not make sense for netware}
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-(*
-  FSynchronizeException := nil;
-  FMethod := Method;
-{  SendMessage(ThreadWindow, CM_EXECPROC, 0, Longint(Self)); }
-  {$warning Synchronize needs implementation}
-  if Assigned(FSynchronizeException) then
-    raise FSynchronizeException;
-*)
-end;
-
 
 
 procedure TThread.SetSuspended(Value: Boolean);
 procedure TThread.SetSuspended(Value: Boolean);
 begin
 begin
@@ -271,7 +258,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2005-02-14 17:13:30  peter
+  Revision 1.5  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.4  2005/02/14 17:13:30  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 4
rtl/netwlibc/tthread.inc

@@ -392,9 +392,6 @@ begin
       Result := I;
       Result := I;
 end;
 end;
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-end;
 
 
 procedure TThread.SetPriority(Value: TThreadPriority);
 procedure TThread.SetPriority(Value: TThreadPriority);
 begin
 begin
@@ -403,7 +400,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2005-02-14 17:13:30  peter
+  Revision 1.4  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.3  2005/02/14 17:13:30  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 15
rtl/openbsd/tthread.inc

@@ -243,16 +243,6 @@ begin
 end;
 end;
 
 
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-  FSynchronizeException := nil;
-  FMethod := Method;
-{  SendMessage(ThreadWindow, CM_EXECPROC, 0, Longint(Self)); }
-  if Assigned(FSynchronizeException) then
-    raise FSynchronizeException;
-end;
-
-
 procedure TThread.SetSuspended(Value: Boolean);
 procedure TThread.SetSuspended(Value: Boolean);
 begin
 begin
   if Value <> FSuspended then
   if Value <> FSuspended then
@@ -593,10 +583,6 @@ begin
       Result := I;
       Result := I;
 end;
 end;
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-{$TODO someone with more clue of the GUI stuff will have to do this}
-end;
 
 
 procedure TThread.SetPriority(Value: TThreadPriority);
 procedure TThread.SetPriority(Value: TThreadPriority);
 begin
 begin
@@ -606,7 +592,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2005-02-14 17:13:31  peter
+  Revision 1.4  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.3  2005/02/14 17:13:31  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 6
rtl/os2/tthread.inc

@@ -156,11 +156,6 @@ begin
 end;
 end;
 
 
 
 
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-end;
-
-
 function ThreadProc(Args: pointer): Integer; cdecl;
 function ThreadProc(Args: pointer): Integer; cdecl;
 var
 var
   FreeThread: Boolean;
   FreeThread: Boolean;
@@ -241,7 +236,11 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.5  2005-02-14 17:13:31  peter
+  Revision 1.6  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.5  2005/02/14 17:13:31  peter
     * truncate log
     * truncate log
 
 
 }
 }

+ 5 - 45
rtl/win32/tthread.inc

@@ -183,50 +183,6 @@ begin
   SetThreadPriority(FHandle, Priorities[Value]);
   SetThreadPriority(FHandle, Priorities[Value]);
 end;
 end;
 
 
-{ old implementation? :
-procedure TThread.Synchronize(Method: TThreadMethod);
-begin
-  FSynchronizeException := nil;
-  FMethod := Method;
-  SendMessage(ThreadWindow, CM_EXECPROC, 0, Longint(Self));
-  if Assigned(FSynchronizeException) then raise FSynchronizeException;
-end;
-}
-
-procedure TThread.Synchronize(Method: TThreadMethod);
-var
-  LocalSyncException: Exception;
-begin
-  if SynchronizeMethodProc = nil then
-    { raise some error? }
-    exit;
-
-  EnterCriticalSection(SynchronizeCritSect);
-  SynchronizeMethod := Method;
-  SynchronizeException := nil;
-  SynchronizeMethodProc;
-  // wait infinitely
-  RtlEventWaitFor(ExecuteEvent);
-  SynchronizeMethod := nil;
-  LocalSyncException := SynchronizeException;
-  LeaveCriticalSection(SynchronizeCritSect);
-  if LocalSyncException <> nil then
-    raise LocalSyncException;
-end;
-
-procedure CheckSynchronize;
-  { assumes being called from GUI thread }
-begin
-  if SynchronizeMethod = nil then
-    exit;
-
-  try
-    SynchronizeMethod;
-  except
-    SynchronizeException := Exception(AcquireExceptionObject);
-  end;
-  RtlEventSetEvent(ExecuteEvent);
-end;
 
 
 procedure TThread.SetSuspended(Value: Boolean);
 procedure TThread.SetSuspended(Value: Boolean);
 begin
 begin
@@ -265,7 +221,11 @@ begin
 end;
 end;
 {
 {
   $Log$
   $Log$
-  Revision 1.6  2005-02-14 17:13:32  peter
+  Revision 1.7  2005-02-25 21:41:09  florian
+    * generic tthread.synchronize
+    * delphi compatible wakemainthread
+
+  Revision 1.6  2005/02/14 17:13:32  peter
     * truncate log
     * truncate log
 
 
   Revision 1.5  2005/02/06 13:06:20  peter
   Revision 1.5  2005/02/06 13:06:20  peter