Patch title: Release 84 bulk changes
Abstract:
File: /pliant/language/schedule/daemon.pli
Key:
    Removed line
    Added line
   
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 


function stop_daemons p
  arg Address p
  var Pointer:Arrow c :> daemons first
  while c<>null
    var Pointer:Daemon d :> c map Daemon
    if trace
      console "  stop " d:title " ..."
    d stop
    if trace
      console " done." eol
    c :> daemons next c
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 


function stop_daemons p
  arg Address p
  var Pointer:Arrow c :> daemons first
  while c<>null
    var Pointer:Daemon d :> c map Daemon
    if trace
      console "  stop " d:title " ..."
    d stop
    if trace
      console " done." eol
    c :> daemons next c
  var Int lap := 0
  while lap<9 and current_running_threads>1
    sleep 0.1 ; lap += 1
  sleep 0.1
  if false # current_running_threads>1
    console "failed to get back to single thread mode !" eol
    sleep 2
gvar DelayedAction stop
stop function :> the_function stop_daemons Address
pliant_shutdown_actions append addressof:stop

gvar DelayedAction stop
stop function :> the_function stop_daemons Address
pliant_shutdown_actions append addressof:stop