<div dir="ltr"><div dir="ltr">On Wed, Jun 12, 2024 at 11:04 AM Mark Volkmann <<a href="mailto:r.mark.volkmann@gmail.com">r.mark.volkmann@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">What can I do to prevent the `WebServer` instance from being garbage collected?<div>I thought this would work:</div><div><br></div><div>- make `server` be an instance variable of my `MyWebServer` class</div><div>- set that variable in the `initialize` method of that class to a new instance of `WebServer`</div><div>- create an instance of `MyWebServer` in a Workspace like this:</div><div><br></div><div>server := MyWebServer new.</div><div><br></div><div>That did not work. It seems the instance of `WebServer` that is supposedly held by the instance of `MyWebServer` still gets GCed.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 12, 2024 at 10:23 AM Juan Vuletich <<a href="mailto:juan@cuis.st" target="_blank">juan@cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><u></u>

  
    
  
  <div bgcolor="#ffffff">
    Hi Mark,<br>
    <br>
    In Worspaces, variables not declared between vertical vars are
    "Workspace Variables" and live until the Workspace is closed.<br>
    In methods, variables declared as temporaries, between vertical
    vars, may be garbage collected anytime after the method exits,
    unless there is some other reference to the contents.<br>
    <br>
    So, yes. It is very possible that that's the difference.<br></div></blockquote></div></blockquote><div><br></div><div>It turns out this isn't a GC issue. After starting the `WebService` once, if I terminate it from the Process Browser and restart it, it won't work correctly again.  I have to restart the VM and then start the `WebServer`.. Not sure why. Perhaps terminating the "Webserver's listening process" from the Process Browser after making code changes in my server code is not the right approach.</div><div><br></div></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div><font face="arial, helvetica, sans-serif">R. Mark Volkmann</font></div><div><span style="font-size:12.8px"><font face="arial, helvetica, sans-serif">Object Computing, Inc.</font></span></div></div></div></div></div></div></div></div></div>