Skip to content
Snippets Groups Projects
Commit a2f80d88 authored by Oleg Smirnov's avatar Oleg Smirnov
Browse files

%[ER: 16]%

Small changes and bugfixes
parent d14a44cd
No related branches found
No related tags found
No related merge requests found
MEQ in general: MEQ in general:
* reconsider order or events in execute(): should cache be checked - Specify child labels in node constructor; check them in init().
only after node_state and rider have been processed? Note that for
repeated requests, this step is skipped, regardless.
* Specify child labels in node constructor; check them in init().
Process named children properly. Process named children properly.
01/01/04: done, need to test w/glish (glish not working on my laptop)
* Delete.All.Nodes command - Persistent nodes: Save.Forest, Load.Forest, Clear.Cache commands
01/01/04: done, need to test w/glish (glish not working on my laptop)
* Persistent nodes - Clear.Forest command
04/01/04: done, need to test w/glish (glish not working on my laptop)
* Implement request ID hierarchy * reconsider order or events in execute(): should cache be checked
only after node_state and rider have been processed? Note that for
repeated requests, this step is skipped, regardless.
* Keep thinking about COWs. * Implement request ID hierarchy
+ Document the two types of node_state lookups + Document the two types of node_state lookups
+ Document pollChildren() + Document pollChildren()
...@@ -39,33 +40,27 @@ MEQ in general: ...@@ -39,33 +40,27 @@ MEQ in general:
implement simple copy-on-write as the default policy in DMI? implement simple copy-on-write as the default policy in DMI?
27/11/03: good to go for now. Still thinking about COW. 27/11/03: good to go for now. Still thinking about COW.
Result:
* Check for USE_THREADS when playing with mutexes (or improve the definition
of mutexes for when not using threads)
Spigot: Spigot:
* Allow string specification for correlations
* In deliver, just stick the result in the cache and let the caching code * In deliver, just stick the result in the cache and let the caching code
take care of everything else. take care of everything else.
+ Allow string specification for correlations
09/01/04: no need, now that Spigots output all correlations at once.
Parm: Parm:
* Figure out how to specify default values (with, e.g., an infinite domain) * Figure out how to specify default values (with, e.g., an infinite domain)
Request: Request:
* BUG: Figure out why state_test() (meqtest.g) causes Requests to be fail to
* Figure out why state_test() (meqtest.g) causes Requests to be fail to
unpack upon the first invocation. Possibly related to problem below. unpack upon the first invocation. Possibly related to problem below.
See details in report 1 below. See details in report 1 below.
* when Jan supplied an illegal request (wrong fields, unmatched IDs), the * Buglet: when Jan supplied an illegal request (wrong fields, unmatched IDs), the
error message was not exactly descriptive error message was not exactly descriptive
Vells: Vells:
* Vells(DataArray*) constructor: if rank<2 but nelements==1, reform the * Vells(DataArray*) constructor: if rank<2 but nelements==1, reform the
...@@ -75,19 +70,27 @@ Function: ...@@ -75,19 +70,27 @@ Function:
+ Allow cases where a Result has 1 plane and another has N planes: treat + Allow cases where a Result has 1 plane and another has N planes: treat
the single-plane result as a scalar the single-plane result as a scalar
12/12/03 12/12/03 done
General: General:
* MSOutputSink: output to new column doesn't work, column stays 'dummy' * Keep thinking about COWs. Perhaps make hooks implicitl-COW? This would
mean declaring an operator [] on CountedRefs?
* Bug: MSOutputSink: output to new column doesn't work, column stays 'dummy'.
Ask Ger for help, since I'm obviously misusing tables somehow.
* Check how a zero-length string or hiid array from Glish shows up in * Bug: Check how a zero-length string or hiid array from Glish shows up in
AppAgent -- because it looked like a 1-element DataField when AppAgent -- because it looked like a 1-element DataField when
processing child specs. processing child specs.
* Ditto for zero-length arrays ('[]'), i.e., uninitialized domain, etc. * Bug: Ditto for zero-length arrays ('[]'), i.e., uninitialized domain, etc.
* Check for USE_THREADS when playing with mutexes (or improve the definition
of mutexes when compiling without threads: declare constructors for
Mutex::Lock and all that crap)
* Figure out why the hell it freezes on a single-CPU machine sometimes. A * Bug: Figure out why the hell it freezes on a single-CPU machine sometimes. A
race condition somewhere? NB: a sure way to do it (on zeppelin) seems to race condition somewhere? NB: a sure way to do it (on zeppelin) seems to
enable wait_reply=T in the Resolve.Children calls in meqtest.g. enable wait_reply=T in the Resolve.Children calls in meqtest.g.
......
...@@ -38,6 +38,7 @@ BlockableObject * __construct_MeqSpigot (int n) { return n>0 ? new Meq::Spigot [ ...@@ -38,6 +38,7 @@ BlockableObject * __construct_MeqSpigot (int n) { return n>0 ? new Meq::Spigot [
AtomicID::registerId(-1045,"message")+ AtomicID::registerId(-1045,"message")+
AtomicID::registerId(-1164,"code")+ AtomicID::registerId(-1164,"code")+
AtomicID::registerId(-1372,"execute")+ AtomicID::registerId(-1372,"execute")+
AtomicID::registerId(-1386,"addstate")+
AtomicID::registerId(-1126,"station")+ AtomicID::registerId(-1126,"station")+
AtomicID::registerId(-1051,"index")+ AtomicID::registerId(-1051,"index")+
AtomicID::registerId(-1280,"tile")+ AtomicID::registerId(-1280,"tile")+
......
...@@ -213,6 +213,11 @@ const int AidTile_int = -1280; ...@@ -213,6 +213,11 @@ const int AidTile_int = -1280;
const AtomicID AidVisHandlerNode(-1329); // from /home/oms/LOFAR/CEP/CPA/AppAgent/MeqServer/src/VisHandlerNode.h:7 const AtomicID AidVisHandlerNode(-1329); // from /home/oms/LOFAR/CEP/CPA/AppAgent/MeqServer/src/VisHandlerNode.h:7
const int AidVisHandlerNode_int = -1329; const int AidVisHandlerNode_int = -1329;
#endif #endif
#ifndef _defined_id_Aidaddstate
#define _defined_id_Aidaddstate 1
const AtomicID Aidaddstate(-1386); // from /home/oms/LOFAR/CEP/CPA/AppAgent/MeqServer/src/MeqServer.h:14
const int Aidaddstate_int = -1386;
#endif
#endif #endif
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#pragma aid Create Delete Get Set State Request Resolve Child Children List #pragma aid Create Delete Get Set State Request Resolve Child Children List
#pragma aid App Command Args Result Data Processing Error Message Code #pragma aid App Command Args Result Data Processing Error Message Code
#pragma aid Execute #pragma aid Execute
#pragma aid addstate
namespace Meq namespace Meq
{ {
......
# use_suspend := T; use_suspend := T;
# use_nostart := T; # use_nostart := T;
# use_valgrind := T; # use_valgrind := T;
# "--skin=helgrind --logfile=hg.meqserver"; # "--skin=helgrind --logfile=hg.meqserver";
...@@ -132,9 +132,9 @@ const state_test_init := function () ...@@ -132,9 +132,9 @@ const state_test_init := function ()
} }
} }
# set verbose debugging messages # set verbose debugging messages
mqs.setdebug("MeqNode MeqForest MeqSink MeqSpigot",5); mqs.setdebug("MeqNode MeqForest MeqSink MeqSpigot",1);
mqs.setdebug("MeqNode MeqForest MeqSink MeqSpigot",5); mqs.setdebug("MeqNode MeqForest MeqSink MeqSpigot",1);
mqs.setdebug("MeqServ MeqVisHandler",5); mqs.setdebug("MeqServ MeqVisHandler",1);
mqs.setdebug("Glish",5); mqs.setdebug("Glish",5);
mqs.setdebug("meqserver",1); mqs.setdebug("meqserver",1);
# initialize meqserver # initialize meqserver
...@@ -241,10 +241,10 @@ const solver_test := function () ...@@ -241,10 +241,10 @@ const solver_test := function ()
mqs.init([output_col="PREDICT"],wait=T); mqs.init([output_col="PREDICT"],wait=T);
# create parms and condeq # create parms and condeq
defval1 := array([1.,2.,1.5,0.2,1.3,0.5],2,3); defval1 := array([3.,0.5,0.5,0.1],2,2);
defval2 := array([2.,10.,2.,10.,2.,10],2,3); defval2 := array([2.,10.,2.,10. ],2,2);
print mqs.meq('Create.Node',meqparm('parm1',defval1,config_groups='Solvable.Parm')); print mqs.meq('Create.Node',meqparm('parm1',defval1,config_groups='Solvable.Parm'));
print mqs.meq('Create.Node',meqparm('parm2',defval1,config_groups='Solvable.Parm')); print mqs.meq('Create.Node',meqparm('parm2',defval2,config_groups='Solvable.Parm'));
print mqs.meq('Create.Node',meqnode('MeqCondeq','condeq1',children=[a='parm1',b='parm2'])); print mqs.meq('Create.Node',meqnode('MeqCondeq','condeq1',children=[a='parm1',b='parm2']));
# create solver # create solver
global rec; global rec;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment