Changeset fc9de2f in tol for tolsh/tolsh.vfs/lib


Ignore:
Timestamp:
Mar 15, 2010, 4:53:13 PM (17 years ago)
Author:
Liván Ramírez Dorta <livanr68@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
080113c
Parents:
1f82c01
Message:

refs#873: Improve TolServer process structure
Use of another shared array in order to inform client that a task has being finished

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@2056 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

    r1f82c01 rfc9de2f  
    3737
    3838global shared_state
     39global shared_finish
    3940
    4041###############################################################################
    … …  
    477478  global shared_tasks
    478479  global shared_state
     480  global shared_finish
    479481
    480482  tequila::open localhost 20458
    481483  tequila::attach shared_tasks
    482484  tequila::attach shared_state
    483  
     485  tequila::attach shared_finish
     486 
     487  #trace add var shared_finish(tasks) write tolserver::server_listen_finish
     488  trace add var shared_finish write tolserver::server_listen_finish
     489
    484490  # this trace is just for debbuging, it's not necesary actually
    485491  trace add var shared_tasks write tolserver::server_listen_tasks
    … …  
    488494  trace add var shared_state write tolserver::server_listen_state
    489495}   
     496
     497proc tolserver::server_listen_finish {name index op} {
     498  global shared_finish
     499
     500  log "debug" "enter server_listen_finish:index=$index"
     501  log "debug" "[array get ::shared_finish]"
     502 
     503  # inform client this request has being finished
     504  foreach {chan idtask} $shared_finish(tasks) break
     505  after idle [namespace code "send_to_client $chan TFINISH $idtask"]
     506
     507  log "debug" "leave server_listen_finish"
     508}
    490509
    491510proc tolserver::server_listen_tasks {name index op} {
    … …  
    570589
    571590proc ::tolserver::send_tasks_to_slave {} {
    572   #global shared_data
    573591
    574592  log "debug" "enter send_tasks_to_slave"
    … …  
    577595    set_queue_shared $t_list
    578596  }
    579   #if {$shared_data(ack) == 0} {
    580     #log "debug" "send_tasks_to_slave: vwait shared_data(ack)"
    581     #vwait shared_data(ack)
    582   #}
    583597  log "debug" "leave send_tasks_to_slave"
    584598}
  • tolsh/tolsh.vfs/lib/tolcomm/tolslave.tcl

    r1f82c01 rfc9de2f  
    2626
    2727global shared_state
    28 #set shared_data(ack) 0
    2928set shared_state(slave) "busy"
     29
     30global shared_finish
     31set shared_finish(tasks) ""
    3032
    3133global shared_tasks
    … …  
    9294  }
    9395
    94   #set shared_data(ack) 0
    9596  set shared_state(slave) "ready"
    9697  log "debug" "leave start"
    … …  
    101102  global shared_state
    102103  global shared_tasks
     104  global shared_finish
    103105
    104106  tequila::open localhost 20458
    105107  tequila::attach shared_state
    106108  tequila::attach shared_tasks
     109  tequila::attach shared_finish
    107110 
    108111  #trace add var shared_tasks(request) write tolslave::slave_listen_tasks
    … …  
    111114  # this trace is just for debbuging, it's not necesary actually
    112115  trace add var shared_state write tolslave::slave_listen_state
     116
     117  # this trace is just for debbuging, it's not necesary actually
     118  trace add var shared_finish write tolslave::slave_listen_finish
    113119}   
    114120
    … …  
    118124  log "debug" "enter slave_listen_tasks:index=$index"
    119125  log "debug" "[array get ::shared_tasks]"
    120   #set shared_data(ack) 0
    121126  if {$index eq "request"} {
    122127    schedule_queue
    … …  
    132137}
    133138
     139proc tolslave::slave_listen_finish {name index op} {
     140  global shared_finish
     141
     142  log "debug" "slave_listen_finish:index=$index"
     143  log "debug" "[array get shared_finish]"
     144}
     145
    134146proc ::tolslave::schedule_queue { } {
    135   #global shared_data
    136147
    137148  log "debug" "enter, schedule_queue"
    … …  
    139150  set_queue_tasks $t_list
    140151  after idle [process_queue]
    141   #set shared_data(ack) 1
    142152  log "debug" "leave, schedule_queue"
    143153}
    … …  
    162172  variable data
    163173  global shared_state
     174  global shared_finish
    164175
    165176  log "debug" "enter, process_queue"
    … …  
    179190      log "debug" "::tol::console eval tol_expr=$tol_expr"
    180191      ::tol::console eval $tol_expr
    181       # inform client this request has being finished
    182       #after idle [namespace code "send_to_client $chan TFINISH $idtask"]
     192      # inform server this request has being finished
     193      set shared_finish(tasks) [list $chan $idtask]
    183194    }
    184195  }
    185196  set shared_state(slave) "ready"
    186   #tequila::do GetAll shared_data
    187197  log "debug" "leave, process_queue"
    188198}
Note: See TracChangeset for help on using the changeset viewer.