Not sure I understand where the confusion is, because GlobalNames.h is
where the relationship is created. For example,
GLOBAL_NAME(ACTIVATE, CHAR_ACTIVATE)
creates the string object constant OREF_ACTIVATE with a value defined by
CHAR_ACTIVATE. So, for example, to create an OREF_KILL_SIGNAL item, you
might code something like this:
GLOBAL_NAME(KILL_SIGNAL, "KILL")
Rick
On Thu, Dec 6, 2012 at 10:07 AM, David Ashley <w.david.ash...@gmail.com>wrote:
> Rick -
>
> I can not figure out the relationship between the OREF_* names and the
> entries in the GlobalNames.h file. Where is that relationship
> established?
>
> David Ashley
>
> On Mon, 2012-11-26 at 13:09 -0500, Rick McGuire wrote:
> > I was suggesting a change to haltAllActivities. Note that this will
> > also require a couple of tweaks to the Windows-specific code as well.
> >
> >
> > Rick
> >
> >
> > On Mon, Nov 26, 2012 at 12:02 PM, David Ashley
> > <w.david.ash...@gmail.com> wrote:
> > I have looked into your reply below and I have a question.
> >
> > Would you prefer me to change the existing haltAllActivities
> > methods or
> > create new ones with a different argument footproint?
> >
> > Either works for me, this is just a style question really.
> >
> > David Ashley
> >
> > On Thu, 2012-11-15 at 11:20 -0500, Rick McGuire wrote:
> > > Not too difficult, actually. The work of raising a halt
> > condition is
> > > eventually performed in RexxActivity::halt, which can
> > already take a
> > > description string. The path to get there is
> > >
> >
> Interpreter::haltAllActivities->InterpreterInstance::haltAllActivities->RexActivity::halt.
> The first two calls don't take an argument, so you'd need to add one and
> pass it along to halt.
> > >
> > >
> > > There is a complication here. The interrupt handler happens
> > > asynchronously and in a state where it is not safe to create
> > new
> > > objects. This means any strings passed along as the
> > description will
> > > need to be added to the global interpreter string table
> > (e.g., one of
> > > the OREF_* names). This means adding appropriate entries in
> > > GlobalNames.h and RexxConstants.hpp. The need to add this
> > in both
> > > places is an old vestiage of IBM standards carried to the
> > ultimate
> > > extreme. I would not object strenuously if this was done by
> > just
> > > coding the literal string value directly in GlobalNames.h
> > without
> > > adding a corresponding CHAR_* entry to RexxConstants.hpp.
> > I've sort
> > > of already been doing that sort of thing in Setup.cpp when
> > adding new
> > > method names.
> > >
> > >
> > > Rick
> > >
> > >
> > > On Thu, Nov 15, 2012 at 10:51 AM, David Ashley
> > > <w.david.ash...@gmail.com> wrote:
> > > Rick -
> > >
> > > I need you help with this code.
> > >
> > > If all these signals are going to raise the Halt
> > condition, we
> > > need to
> > > supply the user with additional information about
> > what kind of
> > > signal
> > > this is. How do I add additional information about
> > the kind of
> > > Halt
> > > (signal) that was raised?
> > >
> > > David Ashley
> > >
> > > On Tue, 2012-11-06 at 16:40 +0100, Manfred Lotz
> > wrote:
> > >
> > > > On Wed, 31 Oct 2012 08:39:53 -0500
> > > > David Ashley <w.david.ash...@gmail.com> wrote:
> > > >
> > > > > Rick will need to comment on this. I am not an
> > expert in
> > > the
> > > > > interpreter code base.
> > > > >
> > > >
> > > > Ok, I had a deeper look at this. Here is a small
> > test script
> > > which
> > > > could be used to verify my coding:
> > > >
> > > > /* REXX */
> > > >
> > > > signal on halt
> > > >
> > > > file=.stream~new("sig.lst")
> > > > pull
> > > > file~close()
> > > >
> > > > exit(0);
> > > >
> > > > halt:
> > > > msg = "Signal on halt reached."
> > > > file~lineout(date() time() msg) /* Append a
> > line to the
> > > file */
> > > > file~close()
> > > >
> > > >
> > > > The script writes a message if signal on halt
> > hits.
> > > >
> > > >
> > > > Take the current 4.1.2 rexx interpreter and run
> > it. There
> > > are three
> > > > test cases.
> > > >
> > > > 1. rexx sigtest.rexx
> > > >
> > > > Press Ctrl-C. This triggers SIGINT, and is already
> > > implemented in rexx.
> > > > A record will be written to file sig.lst
> > > >
> > > > 2. rexx sigest.rexx
> > > > Get the pid of the process and do kill <pid>. This
> > triggers
> > > signal
> > > > SIGTERM.
> > > >
> > > > Not implemented in rexx. No record written.
> > > >
> > > > 3. xterm -e rexx sigtest.rexx
> > > > a. Now click the x button to close the window.
> > This triggers
> > > signal
> > > > SIGHUP. Not implemented in rexx, no record
> > written.
> > > > b. Check for the pids of the two processes, i.e.
> > xterm and
> > > rexx.
> > > > Kill the one or the other by using ordinary kill.
> > In neither
> > > case a
> > > > record will be written.
> > > >
> > > >
> > > > I think that additionally SIGTERM and SIGHUP
> > should be
> > > trapped by
> > > > signal on halt. Then in these cases rexx has a
> > chance to do
> > > cleanup
> > > > work before exiting the script.
> > > >
> > > >
> > > > Here is what must be changed so that all above
> > examples
> > > result in a
> > > > record written, i.e. signal on halt will honor
> > SIGTERM and
> > > SIGHUP
> > > > (additionally to SIGINT).
> > > >
> > > > Index:
> > interpreter/platform/unix/SystemInterpreter.cpp
> > > >
> > >
> >
> ===================================================================
> > > > ---
> > interpreter/platform/unix/SystemInterpreter.cpp
> > > (revision
> > > > 8547)
> > > > +++
> > interpreter/platform/unix/SystemInterpreter.cpp
> > > (working
> > > > copy)
> > > > @@ -101,7 +101,9 @@
> > > > #endif
> > > >
> > > > // if the signal is a ctrl-C, we perform a
> > halt
> > > operation
> > > > - if (sig == SIGINT)
> > > > + if (sig == SIGINT ||
> > > > + sig == SIGTERM ||
> > > > + sig == SIGHUP)
> > > > {
> > > > Interpreter::haltAllActivities();
> > > > return;
> > > > @@ -132,9 +134,13 @@
> > > > /* that we now get a coredump instead of a hang
> > > > up */
> > > >
> > > > sigaction(SIGINT, NULL, &old_action);
> > > > + sigaction(SIGTERM, NULL, &old_action);
> > > > + sigaction(SIGHUP, NULL, &old_action);
> > > > if (old_action.sa_handler == NULL)
> > /* not set
> > > by ext.
> > > > exit handler*/
> > > > {
> > > > - sigaction(SIGINT, &new_action, NULL); /*
> > exitClear
> > > on SIGTERM
> > > > signal */
> > > > + sigaction(SIGINT, &new_action, NULL); /*
> > exitClear
> > > on SIGINT
> > > > signal */
> > > > + sigaction(SIGTERM, &new_action, NULL);
> > /*
> > > exitClear on
> > > > SIGTERM signal */
> > > > + sigaction(SIGHUP, &new_action, NULL); /*
> > exitClear
> > > on SIGHUP
> > > > signal */
> > > > }
> > > > }
> > > >
> > > >
> > > >
> > > > What do you thing? Please check the code. Thanks a
> > lot.
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > Monitor your physical, virtual and cloud
> > infrastructure from a
> > > single
> > > web console. Get in-depth insight into apps,
> > servers,
> > > databases, vmware,
> > > SAP, cloud infrastructure, etc. Download 30-day Free
> > Trial.
> > > Pricing starts from $795 for 25 servers or
> > applications!
> > > http://p.sf.net/sfu/zoho_dev2dev_nov
> > >
> > > _______________________________________________
> > > Oorexx-devel mailing list
> > > Oorexx-devel@lists.sourceforge.net
> > >
> > https://lists.sourceforge.net/lists/listinfo/oorexx-devel
> > >
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > Monitor your physical, virtual and cloud infrastructure from
> > a single
> > > web console. Get in-depth insight into apps, servers,
> > databases, vmware,
> > > SAP, cloud infrastructure, etc. Download 30-day Free Trial.
> > > Pricing starts from $795 for 25 servers or applications!
> > > http://p.sf.net/sfu/zoho_dev2dev_nov
> > > _______________________________________________ Oorexx-devel
> > mailing list Oorexx-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/oorexx-devel
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > Monitor your physical, virtual and cloud infrastructure from a
> > single
> > web console. Get in-depth insight into apps, servers,
> > databases, vmware,
> > SAP, cloud infrastructure, etc. Download 30-day Free Trial.
> > Pricing starts from $795 for 25 servers or applications!
> > http://p.sf.net/sfu/zoho_dev2dev_nov
> > _______________________________________________
> > Oorexx-devel mailing list
> > Oorexx-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/oorexx-devel
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > Monitor your physical, virtual and cloud infrastructure from a single
> > web console. Get in-depth insight into apps, servers, databases, vmware,
> > SAP, cloud infrastructure, etc. Download 30-day Free Trial.
> > Pricing starts from $795 for 25 servers or applications!
> > http://p.sf.net/sfu/zoho_dev2dev_nov
> > _______________________________________________ Oorexx-devel mailing
> list Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
>
>
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel