Babis Michael

Forum Replies Created

Viewing 62 reply threads
  • Author
    Posts
    • #57687
      Babis Michael
      Participant

      Seems SSL certificate has expired. Works with HTTP.

    • #57564
      Babis Michael
      Participant

      Well i’ve created my own thread timer as workaround until Kim fixes the “Activation” bug of kbmMWScheduler.

    • #57545
      Babis Michael
      Participant

      Seems it’s choosing wrong (active) thread from the thread pool … might be wrong

    • #57543
      Babis Michael
      Participant

      It seems i found a workaround … just activate/deactivate 2 times

      eg.
      MyEvent.Active := False;
      MyEvent.Active := True;
      MyEvent.Active := False;
      MyEvent.Active := True;

      Now the interval will work

      I sent a sample project to Kim

      • This reply was modified 1 year, 10 months ago by Babis Michael.
    • #57538
      Babis Michael
      Participant

      Actually the Precise Thread Interval Starts but if you deactivate the Event and Reactivate it doesn’t work. So the problem is on the 2nd time you activate the precise event/schedule.

    • #57521
      Babis Michael
      Participant

      Any news ?

      Thank you

    • #57475
      Babis Michael
      Participant

      Hello,
      You connecting locally or remotely ?
      Also check the port in your server’s (remote) firewall.

    • #57467
      Babis Michael
      Participant

      Sent you a sample project via e-mail

    • #57430
      Babis Michael
      Participant

      btw, the same leak happends to client transports too

    • #57426
      Babis Michael
      Participant

      Hello,
      Here’s the shutdown code:
      Server.Shutdown;
      Server.Active := False;

      if ConnectionPool.ConnectionList.Count > 0 then
      ConnectionPool.KillConnections;

      Transport.PurgeAndClose([mwpacFlushInbound,mwpacFlushOutbound]);

      The leak didn’t exist in 5.22 i’ll try to make a sample project

    • #57420
      Babis Michael
      Participant

      Since i create the actor on OnLogin event I fixed by cheking autologin:

      function TkbmMWAuthorizationManager.InternalLogin(const AActorName:string; const ARoleName:string;
      …..
      if (ctx.Actor=nil) then
      begin
      if AAutoCreateActor then
      ctx.Actor:=FActors.Add(AActorName,APassPhrase,ARoleName,’Auto created ‘+TkbmMWDateTime.Now.ISO8601String);
      if (mwaoAutoLogin in Options) or ((ctx.Actor<>nil) and (not ctx.Actor.Internal)) then // HERE added cheking auto login and fire the event
      DoOnLogin(ctx,ctx.FActor,ctx.FRole,ctx.FMessage);

      If you have something else to suggest let me know

      Thank you

    • #56968
      Babis Michael
      Participant

      Ok i found the issue … DXGI needs the monitor array backwards!

      according to chromium sources:

      dxgi_adapter_duplicator.cc
      duplicators_.push_back(std::move(duplicator));

    • #56960
      Babis Michael
      Participant

      Seems their is problem multi monitor environments eg. it doesn’t register monitor 1/primary. the FMonitors[0] value is nil while FMonitors[1]  (monitor 2) is mdwn_2.

      Changed this line in order to work:

      constructor TkbmMWRemoteDesktopClient.Create(AOwner:TComponent);

      {$IFDEF FMX}
      FID:=TkbmMWRemoteDesktopMonitor.mwrdm_1;
      {$ELSE}
      // Original: FID:=TkbmMWRemoteDesktopMonitor(Screen.PrimaryMonitor.MonitorNum)

      FID:=TkbmMWRemoteDesktopMonitor(Screen.PrimaryMonitor.MonitorNum -1);

      Testing ….

    • #56959
      Babis Michael
      Participant

      I found the issue. It’s VerifyTransfer. When it’s enabled it throws randomly an Invalid Data error and Disconnects.

      I disable atm and no more random disconnections.

    • #56958
      Babis Michael
      Participant

      Due my experiments replaced the Move with CopyMemory and it works although it copies the 2nd monitor instead of the 1st.

      So the problem is when you have a 4k Monitor and a 2nd 1080p monitor and switch to DirectX.
      Seems it grabs the wrong monitor for the buffer or the opposite.

      Thank you

    • #56957
      Babis Michael
      Participant

      Found the problem it’s on the below line but i don’t know how to resolve the AV or Stack Overflow.
      Maybe the map is still locked or something and can’t let it copy the bytes to DIB ?

      function TkbmMWRemoteDesktopServer.GetScreenDXGI ….


      ABmp.DrawData(map.pBits); //AV Here
      ….

      Thank you

    • #56946
      Babis Michael
      Participant

      Found the issue! The leak occurs when you call kbmmwshutdown before you terminate you application.

      procedure TForm25.FormClose(Sender: TObject; var Action: TCloseAction);
      begin
      kbmmwshutdown; //comment me to prevent leak
      end;

    • #56940
      Babis Michael
      Participant

      Kim,

      Any news on this ?
      I think it’s related to “native transport 5.21 TLS disconnect crash” topic too

    • #56928
      Babis Michael
      Participant

      Oh! i found i had a “kbmMWSmartEvent” declaration in one of my units that caused this. So even if you don’t use the SmartEvent declaring the unit causes this. Removed and the leaks gone!

    • #56922
      Babis Michael
      Participant

      I have the same issue without using TLS. 5.20 works ok!

    • #56921
      Babis Michael
      Participant

      Seems Transport Disconnection isn’t working reverting back to 5.20 solved the problem!

    • #56920
      Babis Michael
      Participant

      Maybe it’s related to the error i get in the client when i terminate the server: EkbmMWSocket ‘Cannot execute StopLoop in IO thread’

    • #56919
      Babis Michael
      Participant

      Kim,

      OnClientWaitingResponse AAbort stopped working in 5.21!
      After the server disconnects i get a TRANSPORT_PROCESSOR_EXCEPTION: Access violation at address 0195F414 in module ‘myapp.exe’. Read of address 00000000 and it doesn’t timeout. (Native Transport)

      It seems the transport is trying to transfer data on a disconnected session.

      Thank you

    • #56787
      Babis Michael
      Participant

      Well HTTP protocol not supported so i can’t download a file! 🙁

    • #56765
      Babis Michael
      Participant

      The issue exists with wifi connections too. Random few (2-4) disconnection per day.
      Anything that i can debug ?

      Thank you

    • #56764
      Babis Michael
      Participant

      Nope, changing keepalive values didn’t help!

    • #56763
      Babis Michael
      Participant

      Changing SetKeepAlive to 20 instead of 5 seems to resolve the problem … Keep testing …

      function TkbmMWAbstractSocket.SetKeepAlive(ASocket:THandle):Integer;
      begin
      //Result:=TkbmMWSocketAPI.SetKeepAlive(ASocket,5,3,5);
      Result:=TkbmMWSocketAPI.SetKeepAlive(ASocket,20,3,5);
      end;

      btw, It would be nice to have it on a property or something to be able to set socket options.

    • #56756
      Babis Michael
      Participant

      Hmm, still getting leak on the native client transport when i shutdown the app with 5.20.01

      • #56757
        Babis Michael
        Participant

        Hmm, seems TkbmMWCustomTCPMessagingClientTransport.InternalCloseSocket; called twice but TkbmMWAbstractSocket.Destroy; called once!

    • #56748
      Babis Michael
      Participant

      I guess this will fix the Socket memory leak too right ?

      Thank you

    • #56747
      Babis Michael
      Participant

      Thank you i’ll give it a try 🙂

    • #56727
      Babis Michael
      Participant

      This is NOT fixed in 5.20! You forgot one NativeUInt!
      Pbyte(NativeUInt(@InData1)+i-1)^:= Pbyte(NativeUInt(@InData1)+i-1)^ xor Pbyte(longword(@InData2)+i-1)^;
      the last LongWord should be NativeUInt too!

      Thank you

      • This reply was modified 3 years, 3 months ago by Babis Michael.
    • #56723
      Babis Michael
      Participant

      Changing to capture mode DirectX freezes server!

    • #56722
      Babis Michael
      Participant

      Kim, this isn’t fixed in 5.20! (you forgot it)

    • #56721
      Babis Michael
      Participant

      Love you!

    • #56673
      Babis Michael
      Participant

      Kim ?

      The client connects but it doesn’t display anything!

    • #56662
      Babis Michael
      Participant

      btw, added manually and works!

    • #56576
      Babis Michael
      Participant

      Or generally replacing all other Hash algos to xxHash in all units.

    • #56558
      Babis Michael
      Participant

      Dah! Reverting back to kbmMW locking … I dunno if this a TMonitor issue or kbmMW!

    • #56535
      Babis Michael
      Participant

      The client actually waits a response from the server in the function TkbmMWEvent.WaitFor … sleep(n); …. but never get its … although the server works without problens! Seems like something is filling up the connections pool but never releases them back from the server side ?

      Thank you

    • #56524
      Babis Michael
      Participant

      Hello,

      Make an account on https://portal.components4developers.com/ and download it

    • #56506
      Babis Michael
      Participant

      Excellent news! Now if you can make the client transports also i would get rid indy completely! 🙂

      Thank you

    • #56499
      Babis Michael
      Participant

      Anyone tried to email him ? I did nothing …

    • #56489
      Babis Michael
      Participant

      btw it seems that locking is broken ?

      Replacing the events call with TThread.Queue calls solved my freeze problems …

      Thank you

    • #56476
      Babis Michael
      Participant

      Been weeks i start to concern …

    • #56475
      Babis Michael
      Participant

      Nope it doesn’t work on me either with the latest version. (No screen)

    • #56466
      Babis Michael
      Participant

      Kim where are you ?

      We miss you buddy! 🙂

    • #56431
      Babis Michael
      Participant

      New code to avoid AV:

      ctx.Token:=ALoginToken;
      FLock.BeginWrite;
      try
      l:=FLogins.Get(ALoginToken); // New

      if Assigned(l) then // New
      begin
      ctx.Token:=l.Token;
      ctx.ActorName:=l.Actor.Name;
      ctx.Role:=l.Role;
      ctx.Login:=l;
      end;

      DoOnLogout(ctx);
      ctx.TraceMessage:=’Logout: LoginToken=’+ctx.Token;
      DoOnTrace(ctx);

      FLogins.Delete(l.Actor);
      finally
      FLock.EndWrite;
      end;

    • #56422
      Babis Michael
      Participant

      Is it better ?

    • #56410
      Babis Michael
      Participant

      UP

    • #56409
      Babis Michael
      Participant

      UP

    • #56398
      Babis Michael
      Participant

      Still getting the TkbmMWInnerThread leak with 5.19

      • This reply was modified 3 years, 10 months ago by Babis Michael.
    • #56359
      Babis Michael
      Participant

      I guess the Messaging components not any time soon right ? 🙁

    • #56339
      Babis Michael
      Participant

      No, unfortunately he replies once a week or two …

    • #56281
      Babis Michael
      Participant

      btw, GarbageCollect calls the TkbmMWAuthorizationManager.Logout(const ALoginToken:string);

    • #56249
      Babis Michael
      Participant

      It seems it was my fault so skip this! 🙂

    • #56146
      Babis Michael
      Participant

      eg.
      Request “MyRequestName1” done in 100 msecs
      Request “MyRequestName2” done in 150 msecs
      Request “MyRequestName3” timeout
      Request “MyRequestName4” done in 300 msecs

    • #56114
      Babis Michael
      Participant

      UP

    • #55496
      Babis Michael
      Participant

      Kim,

      For some reason i can not see my benchmark posts i can see only your posts.

      Anyway, you can use “defines” to finetune according to the CPU architecture as i did in the old FastCode if you wish! 🙂

      btw, Ryzen 5800x is 8 core 16 thread CPU .

    • #55282
      Babis Michael
      Participant

      moctes,

      From what i saw he’s usually answering to the forum once between 1 or 2 weeks (sometimes 3 weeks too).
      Kim, please improve the support on the forums!

      Thank you

       

    • #55185
      Babis Michael
      Participant

      Hello,

      I think i solved the problem! There were a couple machines with the same actorname so it caused the AV on the delete actor! Since i changed the duplicate actor name the AV seems to be gone when deleting the actor!

       

    • #55176
      Babis Michael
      Participant

      Hello,

      Nope, BeginWrite/EndWrite have the same result. Access violation!
      I think the wrong locks should cause a deadlock and not an Access violation! <g>
      I guess something is trying to acess something that it isn’t there any more after calling deleteactor but i haven’t figure out what!

    • #55166
      Babis Michael
      Participant

      Below is the correct code:

      authmgr.Lock.BeginRead;
      try
      vlogin := authmgr.logins.Get(….) <– AV here

      if assigned(vlogin) then
      begin
      authmgr.logout(vlogin,logintoken); //actor is logged so log him out
      authmgr.deleteactor(actor); // actor is logged out so delete him
      end;

      finally
      authmgr.Lock.EndRead;
      end;

      btw, shouldn’t the “DeleteActor” logout the user too ?

      Thank you

    • #55165
      Babis Michael
      Participant

      Hello,
      Nope! if i delete the actor AV will occur! Removing DeleteActor no AV.

      try
      authmgr.logins.Get(….) <– AV here
      authmgr.logout(logintoken); //actor is logged so log him out
      authmgr.deleteactor(actor); // actor is logged out so delete him
      finally
      authmgr.Lock.EndRead;
      end;

      Thank you

    • #57477
      Babis Michael
      Participant

      I am not Kim <g>
      Can you connect your client and server locally ? (ip: 127.0.0.1)

    • #57011
      Babis Michael
      Participant

      Hi Kim,
      Any news on the fixes ?

      Thank you

    • #56944
      Babis Michael
      Participant

      Sending you via email because here the link thinks it is spam.

    • #56931
      Babis Michael
      Participant

      Can you free this upon finalization or needed to do it manually ?

    • #56926
      Babis Michael
      Participant

      Hello!

      Yes! Here’s the code:

      procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
      begin
      CommonServer.doServerTerminate;
      kbmMWShutdown;
      end;

      btw, i’m not using smartevents at all in my app!

    • #56827
      Babis Michael
      Participant

      Well, it’s up to you but those native sockets kicks ass! 🙂

      So having a basic command handler class would be nice to create a lot of Server/Client Protocols too (eg. IMAP/POP3 etc)

    • #56825
      Babis Michael
      Participant

      Hello,

      Well it’s a server transport not client and i also i don’t understand how to download a file from a HTTPS source using this.

      I would appreciate any example!

      Thank you

    • #56823
      Babis Michael
      Participant

      I mean i change the transport portocol to HTTP but it doesn’t accept it! (or i shouldn’t ?)
      IOW, all i want is to download a file from a HTTPS source to a stream using native transports!
      eg. https://www.mysite.com/myfile.zip with TLS 1.2/1.3

      Thanks

    • #56751
      Babis Michael
      Participant

      nice 🙂

    • #56744
      Babis Michael
      Participant

      the native messaging! with the indy messaging i do this with the code on the first post!

      Thank you

    • #56743
      Babis Michael
      Participant

      Yes, i’m using the messaging transport.
      IOW, i want to kill all active connections/requests instantly and not wait to timeout.

      Thank you

    • #56737
      Babis Michael
      Participant

      Rtx 3090 with latest drivers, 4k monitor and windows 11! You’ll notice that the server application will be busy (can’t do anything) when you switch to DirectX mode.

      • This reply was modified 3 years, 3 months ago by Babis Michael.
    • #56551
      Babis Michael
      Participant

      Well Reject and Delete StalledMessages is true by default, anyhow i’ve added Reject and Stall Queues to monitor. Let’s see!

      Can’t wait to try the native messaging transport! 🙂

      Thank you

    • #56550
      Babis Michael
      Participant

      Hello,

      1) Well replaced TThread.Queues with Scheduler.RunNow (SyncQueued) but it resulted in AV due the missing capture of variables. Seems Delphi is only capturing for TThread classes. I’ve used the Withxxxx in the past but it’s more complex compared letting the compiler capturing the variables. IOW more code
      2) Sure but it more easier and nicer for the coder to write “ExecuteAsync or AsyncExecute” rather Scheduler.RunNow(procedure begin MyScheduledEvent.Execute end);
      3) I meant for Pool threads (not vcl). Eg we can set a parameter for the thread priority to apply it before execute and after the termination it to reset to normal thread priority. Anyhow i can’t find a reason why it can’t be done cause it doesn’t conflict with other threads nor the pool itself.

      Thank you for the quick responses 🙂

    • #56547
      Babis Michael
      Participant

      Thank you 🙂
      It would be nice to add a demo of processors if it’s possible!

    • #56542
      Babis Michael
      Participant

      It seems messages stuck in InBound message queue and increasing over time!

    • #56541
      Babis Michael
      Participant

      Indy Messaging! (Using messages and services)

    • #56505
      Babis Michael
      Participant

      I need to disable KBMMW_SUPPORT_FASTMRWSLOCK after i enabled KBMMW_SUPPORT_MONITORLOCK. I dunno if this is normal.

    • #56430
      Babis Michael
      Participant

      Kim has an internal test i think that’s why he discarded TMonitor from kbmMW in prior releases due bugs of TMonitor.

      Both Delphi 11 and 11.1 have fixes for threading.

    • #56369
      Babis Michael
      Participant

      I found a better solution!
      Since our user is already logged in we shouldn’t call DoOnLoginSuccess(ctx); because it’s already called the first time!

      ctx.TraceMessage:=’Login: Actor already logged in. Actor ‘+ctx.Actor.Name+’, Role=’+ctx.Role.Name+’, At(UTC)=’+DateTimeToStr(Result.LastAuthorized);
      //DoOnLoginSuccess(ctx); <– Remove me!

      • This reply was modified 3 years, 10 months ago by Babis Michael.
    • #56367
      Babis Michael
      Participant

      Hello Kim,
      Checked that and no!

      The “Trace” of duplicate login:

      30/03/2022 09:31| 635450D7EE5A422991BB89EDA6132A6C TRACE: MyUser:33088) Login: Logged in. Actor=MyUser:33088, Role=USER, Location=127.0.0.1:33088 At(UTC)=30/3/2022 6:31:56 πμ
      30/03/2022 09:47| 635450D7EE5A422991BB89EDA6132A6C TRACE: MyUser:33088) Logout: LoginToken=635450D7EE5A422991BB89EDA6132A6C
      30/03/2022 09:47| 404D861FAB464DBD9D832D1B150AD166 TRACE: MyUser:53421) Login: Logged in. Actor=MyUser:53421, Role=USER, Location=127.0.0.1:53421 At(UTC)=30/3/2022 6:47:43 πμ
      30/03/2022 10:06| 404D861FAB464DBD9D832D1B150AD166 TRACE: MyUser:53421) Logout: LoginToken=404D861FAB464DBD9D832D1B150AD166
      30/03/2022 10:08| A41785AAF86E4B6CA4B24DA82ACBA9E6 TRACE: MyUser:54034) Login: Logged in. Actor=MyUser:54034, Role=USER, Location=127.0.0.1:54034 At(UTC)=30/3/2022 7:08:02 πμ
      30/03/2022 10:08| TRACE: MyUser:54034) Login: Actor already logged in. Actor MyUser:54034, Role=USER, At(UTC)=30/3/2022 7:08:02 πμ // <— HERE!!! It attempts for the 2nd time to login but it’s already logged as you can see above
      30/03/2022 10:08| A41785AAF86E4B6CA4B24DA82ACBA9E6 TRACE: MyUser:54034) Logout: LoginToken=A41785AAF86E4B6CA4B24DA82ACBA9E6
      30/03/2022 10:08| 7B606826CA9E4F3B84BA89CEDC590971 TRACE: MyUser:54036) Login: Logged in. Actor=MyUser:54036, Role=USER, Location=127.0.0.1:54036 At(UTC)=30/3/2022 7:08:03 πμ

      If the user is already logged in it will still call “OnLoginSucces” so can you add a flags to “ctx” to know that the user is already logged ?
      eg:

      ctx.AlreadyLogged := True; // <– add this new variable
      ctx.Message:=’Already logged in’;
      ctx.TraceMessage:=’Login: Actor already logged in. Actor ‘+ctx.Actor.Name+’, Role=’+ctx.Role.Name+’, At(UTC)=’+DateTimeToStr(Result.LastAuthorized);
      DoOnLoginSuccess(ctx);

      Thank you

       

       

      • This reply was modified 3 years, 10 months ago by Babis Michael.
    • #56366
      Babis Michael
      Participant

      <3

    • #56358
      Babis Michael
      Participant

      You know that we want faster forum responses! 🙂

    • #56355
      Babis Michael
      Participant

      Hello!
      No it doesn’t not! It’s empty and never fills!
      As you can see in the code it only assigns the “Token” compared to Logout(const AActor:TkbmMWAuthorizationActor);

      procedure TkbmMWAuthorizationManager.Logout(const ALoginToken:string);

      ctx:=TkbmMWAuthorizationContext.Create;
      try
      ctx.Token:=ALoginToken; //Only this!!!
      FLock.BeginWrite;
      try
      DoOnLogout(ctx);
      ….

      procedure TkbmMWAuthorizationManager.Logout(const AActor:TkbmMWAuthorizationActor);
      ….
      ctx.Token:=l.Token;
      ctx.ActorName:=AActor.Name;
      ctx.Role:=l.Role;
      ctx.Login:=l;
      DoOnLogout(ctx);
      ….

      The ctx information is needed for login2 and logout2 and trace2 of AuthorizationManager!
      So in case that GarbageCollection Logout out the user i use the CTX to retrieve his informations. (eg the Actorname).

      Thank you

      • This reply was modified 3 years, 10 months ago by Babis Michael.
      • This reply was modified 3 years, 10 months ago by Babis Michael.
    • #56248
      Babis Michael
      Participant

      Did that and the same leak occurs. Is it possible that somehow the Event is crashing or something causing the scheduler handle not be released ?

      Thank you

    • #56196
      Babis Michael
      Participant

      Thanks 🙂

    • #56165
      Babis Michael
      Participant

      From my side or kbmMW ?

    • #56163
      Babis Michael
      Participant

      I’m using Indy TCP Messaging with kbmMWClientQueries.
      I had to increase it because i was getting: PooledDataset : ObtainConnection : Timeout/error waiting for connection.
      Before 5.06.20 July 11 2018 which included that “AutoActivate” on TkbmMWCustomConnectionPool it worked.

      Thank you

    • #56119
      Babis Michael
      Participant

      Kim ?

    • #56067
      Babis Michael
      Participant

      Hello,

      I do clear the token if i detect disconnection from the server because if i do not do that the Server’s AuthorizationManagerLogin will not fire when the server restarts.

      Example:

      Run the Server
      Run the Client
      Client connects and Server’s AuthorizationManagerLogin will fire (Client.Token will get a value)
      Close Server
      Run Server
      Client will connect but AuthorizationManagerLogin will not fire.

      Thank you

    • #55492
      Babis Michael
      Participant

      Ryzen 5800x

      Read thread 7 finished.
      Read thread 8 finished.
      Read thread 15 finished.
      Read thread 13 finished.
      Read thread 5 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 16 finished.
      Read thread 12 finished.
      Read thread 9 finished.
      Read thread 1 finished.
      Read thread 17 finished.
      Read thread 11 finished.
      Read thread 4 finished.
      Read thread 10 finished.
      Read thread 18 finished.
      Read thread 3 finished.
      Read thread 2 finished.
      Read thread 19 finished.
      Read thread 20 finished.
      Write thread 2 finished.
      Write thread 13 finished.
      Write thread 1 finished.
      Write thread 8 finished.
      Write thread 18 finished.
      Write thread 19 finished.
      Write thread 10 finished.
      Write thread 4 finished.
      Write thread 11 finished.
      Write thread 12 finished.
      Write thread 3 finished.
      Write thread 6 finished.
      Write thread 14 finished.
      Write thread 16 finished.
      Write thread 5 finished.
      Write thread 9 finished.
      Write thread 17 finished.
      Write thread 15 finished.
      Write thread 7 finished.
      Write thread 20 finished.
      Using: TSlimReaderWriter
      Time: 640
      ——————————————–
      Read thread 5 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 8 finished.
      Read thread 13 finished.
      Read thread 4 finished.
      Read thread 7 finished.
      Read thread 15 finished.
      Read thread 16 finished.
      Read thread 20 finished.
      Read thread 12 finished.
      Read thread 10 finished.
      Read thread 18 finished.
      Read thread 17 finished.
      Read thread 9 finished.
      Read thread 2 finished.
      Read thread 1 finished.
      Read thread 3 finished.
      Read thread 11 finished.
      Write thread 9 finished.
      Write thread 5 finished.
      Read thread 19 finished.
      Write thread 8 finished.
      Write thread 7 finished.
      Write thread 13 finished.
      Write thread 17 finished.
      Write thread 14 finished.
      Write thread 2 finished.
      Write thread 4 finished.
      Write thread 12 finished.
      Write thread 3 finished.
      Write thread 16 finished.
      Write thread 18 finished.
      Write thread 19 finished.
      Write thread 20 finished.
      Write thread 6 finished.
      Write thread 10 finished.
      Write thread 11 finished.
      Write thread 15 finished.
      Write thread 1 finished.
      Using: TMultiReadExclusiveWriteSynchronizer
      Time: 1375
      ——————————————–
      Write thread 11 finished.
      Write thread 17 finished.
      Write thread 18 finished.
      Write thread 20 finished.
      Write thread 16 finished.
      Write thread 19 finished.
      Write thread 12 finished.
      Write thread 10 finished.
      Write thread 7 finished.
      Write thread 1 finished.
      Write thread 9 finished.
      Write thread 13 finished.
      Write thread 4 finished.
      Write thread 2 finished.
      Write thread 6 finished.
      Read thread 6 finished.
      Write thread 3 finished.
      Read thread 14 finished.
      Write thread 8 finished.
      Read thread 16 finished.
      Read thread 13 finished.
      Read thread 5 finished.
      Write thread 14 finished.
      Read thread 12 finished.
      Read thread 19 finished.
      Read thread 7 finished.
      Read thread 4 finished.
      Read thread 11 finished.
      Read thread 3 finished.
      Write thread 5 finished.
      Read thread 8 finished.
      Read thread 15 finished.
      Read thread 1 finished.
      Read thread 9 finished.
      Read thread 2 finished.
      Read thread 18 finished.
      Read thread 20 finished.
      Read thread 17 finished.
      Read thread 10 finished.
      Write thread 15 finished.
      Using: TCriticalSection
      Time: 1844
      ——————————————–
      Read thread 8 finished.
      Read thread 15 finished.
      Read thread 16 finished.
      Read thread 7 finished.
      Read thread 13 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 5 finished.
      Read thread 19 finished.
      Read thread 12 finished.
      Read thread 11 finished.
      Read thread 20 finished.
      Write thread 10 finished.
      Write thread 19 finished.
      Write thread 17 finished.
      Read thread 2 finished.
      Write thread 18 finished.
      Write thread 3 finished.
      Write thread 20 finished.
      Write thread 5 finished.
      Write thread 11 finished.
      Read thread 17 finished.
      Write thread 12 finished.
      Read thread 1 finished.
      Write thread 13 finished.
      Read thread 9 finished.
      Write thread 4 finished.
      Read thread 4 finished.
      Write thread 1 finished.
      Write thread 6 finished.
      Write thread 2 finished.
      Read thread 18 finished.
      Read thread 10 finished.
      Write thread 9 finished.
      Write thread 15 finished.
      Write thread 7 finished.
      Write thread 8 finished.
      Read thread 3 finished.
      Write thread 16 finished.
      Write thread 14 finished.
      Using: TMonitor
      Time: 453
      ——————————————–
      Read thread 5 finished.
      Read thread 14 finished.
      Read thread 13 finished.
      Read thread 6 finished.
      Read thread 7 finished.
      Read thread 8 finished.
      Read thread 12 finished.
      Read thread 15 finished.
      Read thread 3 finished.
      Read thread 11 finished.
      Read thread 17 finished.
      Read thread 10 finished.
      Read thread 9 finished.
      Read thread 20 finished.
      Read thread 16 finished.
      Read thread 18 finished.
      Read thread 4 finished.
      Write thread 13 finished.
      Write thread 4 finished.
      Read thread 19 finished.
      Read thread 1 finished.
      Read thread 2 finished.
      Write thread 8 finished.
      Write thread 6 finished.
      Write thread 14 finished.
      Write thread 19 finished.
      Write thread 15 finished.
      Write thread 10 finished.
      Write thread 7 finished.
      Write thread 2 finished.
      Write thread 20 finished.
      Write thread 1 finished.
      Write thread 9 finished.
      Write thread 17 finished.
      Write thread 3 finished.
      Write thread 5 finished.
      Write thread 11 finished.
      Write thread 18 finished.
      Write thread 12 finished.
      Write thread 16 finished.
      Using: TkbmMWLock
      Time: 1062
      ——————————————–
      Read thread 15 finished.
      Read thread 8 finished.
      Read thread 13 finished.
      Read thread 16 finished.
      Read thread 7 finished.
      Read thread 5 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 19 finished.
      Read thread 11 finished.
      Read thread 3 finished.
      Read thread 9 finished.
      Read thread 20 finished.
      Read thread 17 finished.
      Read thread 1 finished.
      Read thread 10 finished.
      Read thread 12 finished.
      Read thread 2 finished.
      Read thread 4 finished.
      Read thread 18 finished.
      Write thread 9 finished.
      Write thread 7 finished.
      Write thread 18 finished.
      Write thread 4 finished.
      Write thread 15 finished.
      Write thread 17 finished.
      Write thread 19 finished.
      Write thread 1 finished.
      Write thread 16 finished.
      Write thread 20 finished.
      Write thread 11 finished.
      Write thread 13 finished.
      Write thread 8 finished.
      Write thread 5 finished.
      Write thread 12 finished.
      Write thread 14 finished.
      Write thread 6 finished.
      Write thread 3 finished.
      Write thread 2 finished.
      Write thread 10 finished.
      Using: TLighterMREW
      Time: 578
      ——————————————–

    • #55491
      Babis Michael
      Participant

      Ryzen 5800x TMonitor is the fastest ?

      Read thread 7 finished.
      Read thread 8 finished.
      Read thread 15 finished.
      Read thread 13 finished.
      Read thread 5 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 16 finished.
      Read thread 12 finished.
      Read thread 9 finished.
      Read thread 1 finished.
      Read thread 17 finished.
      Read thread 11 finished.
      Read thread 4 finished.
      Read thread 10 finished.
      Read thread 18 finished.
      Read thread 3 finished.
      Read thread 2 finished.
      Read thread 19 finished.
      Read thread 20 finished.
      Write thread 2 finished.
      Write thread 13 finished.
      Write thread 1 finished.
      Write thread 8 finished.
      Write thread 18 finished.
      Write thread 19 finished.
      Write thread 10 finished.
      Write thread 4 finished.
      Write thread 11 finished.
      Write thread 12 finished.
      Write thread 3 finished.
      Write thread 6 finished.
      Write thread 14 finished.
      Write thread 16 finished.
      Write thread 5 finished.
      Write thread 9 finished.
      Write thread 17 finished.
      Write thread 15 finished.
      Write thread 7 finished.
      Write thread 20 finished.
      Using: TSlimReaderWriter
      Time: 640
      ——————————————–
      Read thread 5 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 8 finished.
      Read thread 13 finished.
      Read thread 4 finished.
      Read thread 7 finished.
      Read thread 15 finished.
      Read thread 16 finished.
      Read thread 20 finished.
      Read thread 12 finished.
      Read thread 10 finished.
      Read thread 18 finished.
      Read thread 17 finished.
      Read thread 9 finished.
      Read thread 2 finished.
      Read thread 1 finished.
      Read thread 3 finished.
      Read thread 11 finished.
      Write thread 9 finished.
      Write thread 5 finished.
      Read thread 19 finished.
      Write thread 8 finished.
      Write thread 7 finished.
      Write thread 13 finished.
      Write thread 17 finished.
      Write thread 14 finished.
      Write thread 2 finished.
      Write thread 4 finished.
      Write thread 12 finished.
      Write thread 3 finished.
      Write thread 16 finished.
      Write thread 18 finished.
      Write thread 19 finished.
      Write thread 20 finished.
      Write thread 6 finished.
      Write thread 10 finished.
      Write thread 11 finished.
      Write thread 15 finished.
      Write thread 1 finished.
      Using: TMultiReadExclusiveWriteSynchronizer
      Time: 1375
      ——————————————–
      Write thread 11 finished.
      Write thread 17 finished.
      Write thread 18 finished.
      Write thread 20 finished.
      Write thread 16 finished.
      Write thread 19 finished.
      Write thread 12 finished.
      Write thread 10 finished.
      Write thread 7 finished.
      Write thread 1 finished.
      Write thread 9 finished.
      Write thread 13 finished.
      Write thread 4 finished.
      Write thread 2 finished.
      Write thread 6 finished.
      Read thread 6 finished.
      Write thread 3 finished.
      Read thread 14 finished.
      Write thread 8 finished.
      Read thread 16 finished.
      Read thread 13 finished.
      Read thread 5 finished.
      Write thread 14 finished.
      Read thread 12 finished.
      Read thread 19 finished.
      Read thread 7 finished.
      Read thread 4 finished.
      Read thread 11 finished.
      Read thread 3 finished.
      Write thread 5 finished.
      Read thread 8 finished.
      Read thread 15 finished.
      Read thread 1 finished.
      Read thread 9 finished.
      Read thread 2 finished.
      Read thread 18 finished.
      Read thread 20 finished.
      Read thread 17 finished.
      Read thread 10 finished.
      Write thread 15 finished.
      Using: TCriticalSection
      Time: 1844
      ——————————————–
      Read thread 8 finished.
      Read thread 15 finished.
      Read thread 16 finished.
      Read thread 7 finished.
      Read thread 13 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 5 finished.
      Read thread 19 finished.
      Read thread 12 finished.
      Read thread 11 finished.
      Read thread 20 finished.
      Write thread 10 finished.
      Write thread 19 finished.
      Write thread 17 finished.
      Read thread 2 finished.
      Write thread 18 finished.
      Write thread 3 finished.
      Write thread 20 finished.
      Write thread 5 finished.
      Write thread 11 finished.
      Read thread 17 finished.
      Write thread 12 finished.
      Read thread 1 finished.
      Write thread 13 finished.
      Read thread 9 finished.
      Write thread 4 finished.
      Read thread 4 finished.
      Write thread 1 finished.
      Write thread 6 finished.
      Write thread 2 finished.
      Read thread 18 finished.
      Read thread 10 finished.
      Write thread 9 finished.
      Write thread 15 finished.
      Write thread 7 finished.
      Write thread 8 finished.
      Read thread 3 finished.
      Write thread 16 finished.
      Write thread 14 finished.
      Using: TMonitor
      Time: 453
      ——————————————–
      Read thread 5 finished.
      Read thread 14 finished.
      Read thread 13 finished.
      Read thread 6 finished.
      Read thread 7 finished.
      Read thread 8 finished.
      Read thread 12 finished.
      Read thread 15 finished.
      Read thread 3 finished.
      Read thread 11 finished.
      Read thread 17 finished.
      Read thread 10 finished.
      Read thread 9 finished.
      Read thread 20 finished.
      Read thread 16 finished.
      Read thread 18 finished.
      Read thread 4 finished.
      Write thread 13 finished.
      Write thread 4 finished.
      Read thread 19 finished.
      Read thread 1 finished.
      Read thread 2 finished.
      Write thread 8 finished.
      Write thread 6 finished.
      Write thread 14 finished.
      Write thread 19 finished.
      Write thread 15 finished.
      Write thread 10 finished.
      Write thread 7 finished.
      Write thread 2 finished.
      Write thread 20 finished.
      Write thread 1 finished.
      Write thread 9 finished.
      Write thread 17 finished.
      Write thread 3 finished.
      Write thread 5 finished.
      Write thread 11 finished.
      Write thread 18 finished.
      Write thread 12 finished.
      Write thread 16 finished.
      Using: TkbmMWLock
      Time: 1062
      ——————————————–
      Read thread 15 finished.
      Read thread 8 finished.
      Read thread 13 finished.
      Read thread 16 finished.
      Read thread 7 finished.
      Read thread 5 finished.
      Read thread 6 finished.
      Read thread 14 finished.
      Read thread 19 finished.
      Read thread 11 finished.
      Read thread 3 finished.
      Read thread 9 finished.
      Read thread 20 finished.
      Read thread 17 finished.
      Read thread 1 finished.
      Read thread 10 finished.
      Read thread 12 finished.
      Read thread 2 finished.
      Read thread 4 finished.
      Read thread 18 finished.
      Write thread 9 finished.
      Write thread 7 finished.
      Write thread 18 finished.
      Write thread 4 finished.
      Write thread 15 finished.
      Write thread 17 finished.
      Write thread 19 finished.
      Write thread 1 finished.
      Write thread 16 finished.
      Write thread 20 finished.
      Write thread 11 finished.
      Write thread 13 finished.
      Write thread 8 finished.
      Write thread 5 finished.
      Write thread 12 finished.
      Write thread 14 finished.
      Write thread 6 finished.
      Write thread 3 finished.
      Write thread 2 finished.
      Write thread 10 finished.
      Using: TLighterMREW
      Time: 578
      ——————————————–

    • #55476
      Babis Michael
      Participant

      Dear Kim,

      I can totally understand and accept since i’m a single developer too but i do not want to loose customers because i do not respond.

      In my life i learnt with the soft and the hard way that “Support” is the 1st thing to make customers happy and keeping them. If they can’t reach me they look solutions and/or alternative elsewhere and they did. (I’m not the only guy developing or fixing computers in my town)

      Do not get me wrong,  the product is awesome by itself but it had and has some critical bugs which it needed to be fixed in order a project to proceed. Speaking for my self i spend a lot of hours and sometime days for bug caused by kbmMW and not from my project (and you know how difficult is to trace a bug in a multi-threaded application) and on the other half i was waiting weeks for a response.

      I do not compare you with DevExpress which they respond the same day but a lot of Open Source projects on Github respond way faster in their bugreports.

      Since i have invested in kbmMW i do not want to leave and go into another framework because i know you a very awesome developer and supporter of Delphi ecosystem but please find a solution for quick support as other project have in here. (I understand e-mail is a priority but i do not have $156 since my project are for my own  use and not commercial so far)

      I will renew my subscription in the coming couple months because i believe that you’ll find a solution to this!

      Thank you 🙂

    • #55293
      Babis Michael
      Participant

      Hello,
      To be relayed fails. Debugging the code found that for unknown reason it fails to decrypt the relayed message.
      I’ll try to find some free time to make you an example.

      Thank you

    • #55292
      Babis Michael
      Participant

      Hello Kim,

      Client!

      If client transport connection pool (Indy) then it will use Indy’s Disconnect method in the end, without options, which means it will attempt to disconnect gracefully (notifying the peer), which will hang until timeout if not responded to per the TCP/IP standard.

      Well the if client internet or server is down for whatever reason there is no point to wait …

      I have however added a DisconnectGracefully boolean property (default true) for next release for all client side Indy transports. It can be set to false before a Disconnect or connection pool kill connections, to force non graceful connection shutdown.

      So the killconnections will have an extra parameter ?
      Currently i do this after i detect a disconnection or timeout:

      Client.Disconnect;
      ConnectionPool.KillConnections;
      InQueue.Clear;
      OutQueue.Clear;

      Thank you

Viewing 62 reply threads