Changeset 1f82c01 in tol for tolsh/tolsh.vfs/lib/tolcomm


Ignore:
Timestamp:
Mar 15, 2010, 12:06:30 PM (17 years ago)
Author:
Liván Ramírez Dorta <livanr68@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
fc9de2f
Parents:
13bedb1
Message:

refs#873: Improve TolServer process structure
Using diferent arrays, one for tasks and another for the slave's state

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@2055 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tolsh/tolsh.vfs/lib/tolcomm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tolsh/tolsh.vfs/lib/tolcomm/tolserver.tcl

    r13bedb1 r1f82c01  
    3131}
    3232
    33 global shared_data
    34 set shared_data(request) ""
    35 set shared_data(init) ""
    36 set shared_data(server_init) 0
     33global shared_tasks
     34set shared_tasks(request) ""
     35set shared_tasks(init) ""
     36set shared_tasks(server_init) 0
     37
     38global shared_state
    3739
    3840###############################################################################
    … …  
    445447###############################################################################
    446448proc ::tolserver::start { args } {
    447   global shared_data
     449  global shared_tasks
    448450
    449451  array set options {
    … …  
    466468  server_attach_data
    467469
    468   log "debug" "shared_data(init)=$options(-compile)"
    469   set shared_data(init) $options(-compile) 
    470   set shared_data(server_init) 1
     470  log "debug" "shared_tasks(init)=$options(-compile)"
     471  set shared_tasks(init) $options(-compile) 
     472  set shared_tasks(server_init) 1
    471473}
    472474
    473475proc ::tolserver::server_attach_data {} {
    474476  package require tequila
    475   global shared_data
     477  global shared_tasks
     478  global shared_state
    476479
    477480  tequila::open localhost 20458
    478   tequila::attach shared_data
     481  tequila::attach shared_tasks
     482  tequila::attach shared_state
    479483 
    480484  # this trace is just for debbuging, it's not necesary actually
    481   trace add var shared_data write tolserver::server_listen
     485  trace add var shared_tasks write tolserver::server_listen_tasks
     486 
     487  # this trace is just for debbuging, it's not necesary actually
     488  trace add var shared_state write tolserver::server_listen_state
    482489}   
    483490
    484 proc tolserver::server_listen {name index op} {
    485   global shared_data
    486 
    487   log "debug" "server_listen:index=$index"
    488   log "debug" "[array get shared_data]"
     491proc tolserver::server_listen_tasks {name index op} {
     492  global shared_tasks
     493
     494  log "debug" "server_listen_tasks:index=$index"
     495  log "debug" "[array get shared_tasks]"
     496}
     497
     498proc tolserver::server_listen_state {name index op} {
     499  global shared_state
     500
     501  log "debug" "server_listen_state:index=$index"
     502  log "debug" "[array get shared_state]"
    489503}
    490504
    … …  
    544558
    545559proc ::tolserver::dispatch_to_slave {} {
    546   global shared_data
     560  global shared_state
    547561
    548562  log "debug" "enter dispatch_to_slave"
    549   if {$shared_data(slave_status) ne "ready"} {
    550     log "debug" "dispatch_to_slave: vwait shared_data(slave_status)"
    551     vwait shared_data(slave_status)
     563  if {$shared_state(slave) ne "ready"} {
     564    log "debug" "dispatch_to_slave: vwait shared_state(slave)"
     565    vwait shared_state(slave)
    552566  }
    553567  send_tasks_to_slave
    … …  
    556570
    557571proc ::tolserver::send_tasks_to_slave {} {
    558   global shared_data
     572  #global shared_data
    559573
    560574  log "debug" "enter send_tasks_to_slave"
    561575  set t_list [get_queue_tasks]
    562   set_queue_shared $t_list
     576  if {[llength $t_list] != 0} {
     577    set_queue_shared $t_list
     578  }
    563579  #if {$shared_data(ack) == 0} {
    564580    #log "debug" "send_tasks_to_slave: vwait shared_data(ack)"
    … …  
    578594
    579595proc ::tolserver::set_queue_shared {t_list} {
    580   global shared_data
     596  global shared_tasks
    581597 
    582598  log "debug" "set_queue_shared:t_list=$t_list"
    583   set shared_data(request) $t_list
    584 }
     599  set shared_tasks(request) $t_list
     600}
  • tolsh/tolsh.vfs/lib/tolcomm/tolslave.tcl

    r13bedb1 r1f82c01  
    2525}
    2626
    27 global shared_data
     27global shared_state
    2828#set shared_data(ack) 0
    29 set shared_data(slave_status) "busy"
     29set shared_state(slave) "busy"
     30
     31global shared_tasks
    3032
    3133###############################################################################
    … …  
    5254###############################################################################
    5355proc ::tolslave::start {args} {
    54   global shared_data
     56  global shared_state
     57  global shared_tasks
    5558
    5659  array set options {
    … …  
    7679  # Compile expression and tol file provided in the command line
    7780  #
    78   if {$shared_data(server_init) == 0} {
    79     vwait shared_data(server_init)
     81  if {$shared_tasks(server_init) == 0} {
     82    vwait shared_tasks(server_init)
    8083  }
    81   foreach item $shared_data(init) {
     84  foreach item $shared_tasks(init) {
    8285    if {[lindex $item 0] eq "expr"} {
    8386      log "debug" "tol::console eval,item=$item"
    … …  
    9093
    9194  #set shared_data(ack) 0
    92   set shared_data(slave_status) "ready"
     95  set shared_state(slave) "ready"
    9396  log "debug" "leave start"
    9497}
    9598
    9699proc ::tolslave::slave_attach_data {} {
    97   global shared_data
    98100  package require tequila
     101  global shared_state
     102  global shared_tasks
    99103
    100104  tequila::open localhost 20458
    101   tequila::attach shared_data
    102   #trace add var shared_data(request) write tolslave::slave_listen
    103   trace add var shared_data write tolslave::slave_listen
     105  tequila::attach shared_state
     106  tequila::attach shared_tasks
     107 
     108  #trace add var shared_tasks(request) write tolslave::slave_listen_tasks
     109  trace add var shared_tasks write tolslave::slave_listen_tasks
     110 
     111  # this trace is just for debbuging, it's not necesary actually
     112  trace add var shared_state write tolslave::slave_listen_state
    104113}   
    105114
    106 proc tolslave::slave_listen {name index op} {
    107   global shared_data
     115proc tolslave::slave_listen_tasks {name index op} {
     116  global shared_tasks
    108117
    109   log "debug" "enter slave_listen:index=$index"
    110   log "debug" "[array get ::shared_data]"
     118  log "debug" "enter slave_listen_tasks:index=$index"
     119  log "debug" "[array get ::shared_tasks]"
    111120  #set shared_data(ack) 0
    112121  if {$index eq "request"} {
    113122    schedule_queue
    114123  }
    115   log "debug" "leave slave_listen"
     124  log "debug" "leave slave_listen_tasks"
     125}
     126
     127proc tolslave::slave_listen_state {name index op} {
     128  global shared_state
     129
     130  log "debug" "slave_listen_state:index=$index"
     131  log "debug" "[array get shared_state]"
    116132}
    117133
    118134proc ::tolslave::schedule_queue { } {
    119   global shared_data
     135  #global shared_data
    120136
    121137  log "debug" "enter, schedule_queue"
    … …  
    128144
    129145proc ::tolslave::get_queue_shared {} {
    130   global shared_data
     146  global shared_tasks
    131147
    132   set t_list $shared_data(request)
     148  set t_list $shared_tasks(request)
    133149  log "debug" "get_queue_shared:t_list=$t_list"
    134150  return $t_list
    … …  
    145161proc ::tolslave::process_queue { } {
    146162  variable data
    147   global shared_data
     163  global shared_state
    148164
    149165  log "debug" "enter, process_queue"
    150166
    151   set shared_data(slave_status) "busy"
     167  set shared_state(slave) "busy"
    152168 
    153169  foreach item $data(queue,tasks) {
    … …  
    167183    }
    168184  }
    169   set shared_data(slave_status) "ready"
     185  set shared_state(slave) "ready"
    170186  #tequila::do GetAll shared_data
    171187  log "debug" "leave, process_queue"
Note: See TracChangeset for help on using the changeset viewer.