Thanks Torsten. That worked. Basically I am wiping my Dictionary whenever I send 'refresh'. But that means Port will grow infinitely. Not sure what effect it will have in production. How does the Port ever get garbage collected anyway?
Thanks again, Ashis -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Torsten Anders Sent: Wednesday, March 11, 2009 6:09 PM To: Mozart users Subject: Re: Global variable (Dictionary) Dear Ashis, The port simply forwards the data, so when you what to "clean" it is too late anyway. Instead, what you could do is send a special message like 'refresh' through the port whenever you want to wipe you log. Then, at the receiving side in the top-level space you can write yourself a program which, e.g., wipes your log file whenever the message 'refresh' was sent. Best Torsten On Mar 11, 2009, at 8:13 PM, Maity, Ashis K wrote: > Thanks Filip. I am using it for kind of Logging purposes. But the port > is keeping up the logs (it's not really log for my case) from the last > run if I did not restart server. I want it to refresh the log (more > like > some diagnostic info in my case) at every run even I do not restart > the > server. Is there a simple way to clear the port? > > Ashis > > -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of Filip Konvicka > Sent: Wednesday, March 11, 2009 3:29 PM > To: [email protected] > Subject: Re: Global variable (Dictionary) > > Hi, > >> I am getting another hang-up here. It appears that Port is not >> getting >> cleaned up in subsequent runs if the underlying process does not die. > Is >> there a simple way to reset the Port/Stream? > > I am accessing ports from spaces without problems. Remeber, when using > this from scripts, the semantics must not break the rules of spaces - > identical queries should always return identical results. (I used this > for referencing external static data and for caching of const > calculations.) Other meaningful usages are console I/O (output) and > logging. > > What exact problems are you experiencing? Isn't it that the server > thread just died? Be sure to fortify the thread using try...catch for > each message. > > HTH, > Filip > > >> Thanks so much, >> >> Ashis >> >> -----Original Message----- >> From: [email protected] [mailto:users-boun...@mozart- >> oz.org] >> On Behalf Of Maity, Ashis K >> Sent: Friday, February 27, 2009 3:50 PM >> To: Mozart users >> Subject: RE: Global variable (Dictionary) >> >> Thanks so much. I was able to solve my problem using Port. >> >> Ashis >> >> -----Original Message----- >> From: [email protected] [mailto:users-boun...@mozart- >> oz.org] >> On Behalf Of Torsten Anders >> Sent: Friday, February 27, 2009 1:11 PM >> To: Mozart users >> Subject: Re: Global variable (Dictionary) >> >> On Feb 27, 2009, at 4:29 PM, Raphael Collet wrote: >>> The error message says that you are trying to modify a stateful >>> entity from inside a computation space. This is forbidden by the >>> language definition, because it breaks an essential assumption on >>> computations spaces: they cannot have side effects. There is an >>> exception to the rule, however: you can send messages on ports. >> >> Besides, you could put a dictionary inside the script so it becomes >> local. >> >> Best >> Torsten >> >>> >>> Cheers, >>> raph >>> >>> On Fri, Feb 27, 2009 at 4:59 PM, Maity, Ashis K >>> <[email protected]> wrote: >>> Hi everybody, >>> >>> How can I store data in a global variable (say in a Dictionary) in a >>> functor file so that I can export that data that can be accessed >>> from >>> another functor? Specifically, I am trying something like this >>> (seems >>> like this sandbox code doesn't even compile -- though actual code >>> does): >>> >>> functor >>> import >>> export >>> define >>> Dict >>> >>> Dict = {Dictionary.new} >>> >>> proc{StoreInfo} >>> {Dictionary.put Dict xx yy} >>> end >>> end >>> >>> >>> The program either hangs or I get error -- "assignment of global >>> variable from local space" (it appears that I can do Dictionary.get >>> operation from local space). If I can not do it this way is there >>> another way I can store several key-value pairs that can be >>> accessed at >>> the end of run from another(Client) Functor? >>> >>> Thanks so much. >>> >>> Ashis >>> > ______________________________________________________________________ >> >>> ___________ >>> mozart-users mailing list mozart- >>> [email protected] >>> http://www.mozart-oz.org/mailman/listinfo/mozart-users >>> >>> <ATT00001.txt> >> >> > ______________________________________________________________________ > __ >> _________ >> mozart-users mailing list >> [email protected] >> http://www.mozart-oz.org/mailman/listinfo/mozart-users >> > ______________________________________________________________________ > __ >> _________ >> mozart-users mailing list >> [email protected] >> http://www.mozart-oz.org/mailman/listinfo/mozart-users >> > ______________________________________________________________________ > __ > _________ >> mozart-users mailing list > [email protected] >> http://www.mozart-oz.org/mailman/listinfo/mozart-users >> > > ______________________________________________________________________ > __ > _________ > mozart-users mailing list > [email protected] > http://www.mozart-oz.org/mailman/listinfo/mozart-users > ______________________________________________________________________ > ___________ > mozart-users mailing list mozart- > [email protected] > http://www.mozart-oz.org/mailman/listinfo/mozart-users ________________________________________________________________________ _________ mozart-users mailing list [email protected] http://www.mozart-oz.org/mailman/listinfo/mozart-users _________________________________________________________________________________ mozart-users mailing list [email protected] http://www.mozart-oz.org/mailman/listinfo/mozart-users
