Jump to content

Carsten Hölscher

Members
  • Content Count

    1
  • Joined

  • Last visited

Posts posted by Carsten Hölscher


  1. I Think I found two bugs in 64 bit mode:

    procedure TSyncManager.RemoveThread(ThreadSync : TThreadSync);
    var
        lpInfo : TSyncInfo;
    begin
        // Enter critical section
        EnterCriticalSection(FThreadLock);
    
        // Resource protection
        try
            // Find the info using the base thread id
            lpInfo := FindSyncInfo(ThreadSync.SyncBaseTID);
            // Check assignment
            if Assigned(lpInfo) then
                PostMessage(lpInfo.FThreadWindow, CM_DESTROYWINDOW, 0,
    //                Longint(lpInfo));           // old version
                    LPARAM(lpInfo));              // my version
        finally
            // Leave the critical section
            LeaveCriticalSection(FThreadLock);
        end;
    end;
    
    
    procedure TSyncManager.Synchronize(ThreadSync : TThreadSync);
    var
        lpInfo : TSyncInfo;
    begin
        // Find the info using the base thread id
        lpInfo := FindSyncInfo(ThreadSync.SyncBaseTID);
    
        // Check assignment, send message to thread window
        if Assigned(lpInfo) then
    //        SendMessage(lpInfo.FThreadWindow, CM_EXECPROC, 0, Longint(ThreadSync));     // old version
            SendMessage(lpInfo.FThreadWindow, CM_EXECPROC, 0, LPARAM(ThreadSync));        // my version
    end;

     

    Carsten

×