In Gnoga.Server.Connection.adb search for the two usages of
Connection_Manager.First.  Both will be in a loop.  Essentially, one of the
problems is that the First operation saves a cursor form the Map, and the
Connection_Manager.Next tries to iterate on it.  However, other tasks can
sometimes delete the element from the Map between those calls.  David
recently added a bandaid that I came up with (an Exception Handler around
the "Close" one to reset the loop if it happens).  The Ping one is already
in an exception handler, but the Ping function also calls Delete on the
Map, so it can, in rare cases, cause some weird crashes.  It's a bit of a
hairy implementation and probably needs a revamp.

On Sat, Jul 28, 2018 at 4:27 AM, Jeffrey R. Carter <jrcar...@acm.org> wrote:

> On 07/27/2018 08:08 PM, David Botton wrote:
> > I am looking (perhaps of Jeff wanted even better, this is his forte :) at
> > revamping, I think we need to improve the whole section from race
> conditions
> > with those maps.
>
> Can you point me at the code in question?
>
> --
> Jeff Carter
> "It is the German who is so uncourteous to his verbs."
> A Scandal in Bohemia
> 122
>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gnoga-list mailing list
> Gnoga-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gnoga-list
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gnoga-list mailing list
Gnoga-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gnoga-list

Reply via email to