summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorgoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>2000-01-27 23:51:21 +0000
committergoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>2000-01-27 23:51:21 +0000
commit7bf4dbb5a0de2a1cb88a4dd391f4396b547b6780 (patch)
tree7433949b0c1148e863ff518eec9ee6ae3d8551a5 /lib
parent1a53d2c962018be2fa3f7299f4fbdae342149768 (diff)
Added
SYNC[HRONISE]: <group list> as an option to the schedule.ccl. This will be used to tell the flesh or the driver to synchronise these groups after the function has been executed. Tom NOTE: You will need to do a gmake <config>-rebuild after this update as the bindings stuff has changed. git-svn-id: http://svn.cactuscode.org/flesh/trunk@1318 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib')
-rw-r--r--lib/sbin/CreateScheduleBindings.pl13
-rw-r--r--lib/sbin/ScheduleParser.pl15
2 files changed, 18 insertions, 10 deletions
diff --git a/lib/sbin/CreateScheduleBindings.pl b/lib/sbin/CreateScheduleBindings.pl
index 198d8568..27598203 100644
--- a/lib/sbin/CreateScheduleBindings.pl
+++ b/lib/sbin/CreateScheduleBindings.pl
@@ -341,14 +341,15 @@ sub ScheduleBlock
$buffer .= $indent . "\"" . $language . "\"" . ",\n";
}
- $buffer .= $indent . scalar(@mem_groups) . ", /* Number of STORAGE groups */\n";
- $buffer .= $indent . scalar(@comm_groups) . ", /* Number of COMM groups */\n";
+ $buffer .= $indent . scalar(@mem_groups) . ", /* Number of STORAGE groups */\n";
+ $buffer .= $indent . scalar(@comm_groups) . ", /* Number of COMM groups */\n";
$buffer .= $indent . scalar(@trigger_groups) . ", /* Number of TRIGGERS groups */\n";
- $buffer .= $indent . scalar(@before_list) . ", /* Number of BEFORE routines */\n";
- $buffer .= $indent . scalar(@after_list) . ", /* Number of AFTER routines */\n";
- $buffer .= $indent . scalar(@while_list) . " /* Number of WHILE variables */";
+ $buffer .= $indent . scalar(@sync_groups) . ", /* Number of SYNC groups */\n";
+ $buffer .= $indent . scalar(@before_list) . ", /* Number of BEFORE routines */\n";
+ $buffer .= $indent . scalar(@after_list) . ", /* Number of AFTER routines */\n";
+ $buffer .= $indent . scalar(@while_list) . " /* Number of WHILE variables */";
- foreach $item (@mem_groups, @comm_groups, @trigger_groups, @before_list, @after_list, @while_list)
+ foreach $item (@mem_groups, @comm_groups, @trigger_groups, @sync_groups, @before_list, @after_list, @while_list)
{
$buffer .= ",\n" . $indent . "\"" . $item . "\"" ;
}
diff --git a/lib/sbin/ScheduleParser.pl b/lib/sbin/ScheduleParser.pl
index e5fe1889..05f20b5e 100644
--- a/lib/sbin/ScheduleParser.pl
+++ b/lib/sbin/ScheduleParser.pl
@@ -75,7 +75,7 @@ sub parse_schedule_ccl
my($n_blocks);
my($n_statements);
my($name, $type, $description, $where, $language,
- $mem_groups, $comm_groups, $trigger_groups,
+ $mem_groups, $comm_groups, $trigger_groups, $sync_groups,
$before_list, $after_list, $while_list);
my($groups);
@@ -89,7 +89,7 @@ sub parse_schedule_ccl
{
($line_number,
$name, $type, $description, $where, $language,
- $mem_groups, $comm_groups, $trigger_groups,
+ $mem_groups, $comm_groups, $trigger_groups, $sync_groups,
$before_list, $after_list, $while_list) = &ParseScheduleBlock($line_number, @data);
$schedule_db{"\U$thorn\E BLOCK_$n_blocks NAME"} = $name;
@@ -100,6 +100,7 @@ sub parse_schedule_ccl
$schedule_db{"\U$thorn\E BLOCK_$n_blocks STOR"} = $mem_groups;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks COMM"} = $comm_groups;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks TRIG"} = $trigger_groups;
+ $schedule_db{"\U$thorn\E BLOCK_$n_blocks SYNC"} = $sync_groups;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks BEFORE"} = $before_list;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks AFTER"} = $after_list;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks WHILE"} = $while_list;
@@ -146,7 +147,7 @@ sub ParseScheduleBlock
{
my($line_number, @data) = @_;
my($name, $type, $description, $where, $language,
- $mem_groups, $comm_groups, $trigger_groups,
+ $mem_groups, $comm_groups, $trigger_groups, $sync_groups,
$before_list, $after_list, $while_list);
my(@fields);
my($field);
@@ -156,6 +157,7 @@ sub ParseScheduleBlock
my(@mem_groups) = ();
my(@comm_groups) = ();
my(@trigger_groups) = ();
+ my(@sync_groups) = ();
my($keyword) = "";
my(@current_sched_list) = ();
@@ -358,6 +360,10 @@ sub ParseScheduleBlock
{
push(@trigger_groups, split(/\s,/, $1));
}
+ elsif($data[$line_number] =~ m/^\s*SYNC[^:]*:\s*(.*)$/i)
+ {
+ push(@sync_groups, split(/\s,/, $1));
+ }
elsif($data[$line_number] =~ m/^\s*LANG[^:]*:\s*(.*)$/i)
{
if($language ne "")
@@ -396,6 +402,7 @@ sub ParseScheduleBlock
$mem_groups = join(",", @mem_groups);
$comm_groups = join(",", @comm_groups);
$trigger_groups = join(",", @trigger_groups);
+ $sync_groups = join(",", @sync_groups);
$before_list = join(",", @before_list);
$after_list = join(",", @after_list);
$while_list = join(",", @while_list);
@@ -403,7 +410,7 @@ sub ParseScheduleBlock
return ($line_number,
$name, $type, $description, $where, $language,
- $mem_groups, $comm_groups, $trigger_groups,
+ $mem_groups, $comm_groups, $trigger_groups, $sync_groups,
$before_list, $after_list, $while_list);
}