Patch title: Release 94 bulk changes
Abstract:
File: /pliant/protocol/common/tcp_server.pli
Key:
    Removed line
    Added line
   
abstract
  [This module is expected to help create various servers us


method server main_loop channel
  oarg_rw TcpServer server ; arg Str channel
  tcp_resource query (var Int current) (var Int maxi)
  var Str options := "queue "+string:maxi
  part connect "receive "+server:name+" connections"
    while not server:please_stop
abstract
  [This module is expected to help create various servers us


method server main_loop channel
  oarg_rw TcpServer server ; arg Str channel
  tcp_resource query (var Int current) (var Int maxi)
  var Str options := "queue "+string:maxi
  part connect "receive "+server:name+" connections"
    while not server:please_stop
      var Link:Stream s :> new Stream ; entry_lock addressof
      var Link:Stream s :> new Stream
      s open channel options in+out+safe+cr+lf
      if s=success
        atomic_increment server:clients_count
        if sequential or not (tcp_resource nowait_request 1)
          part service "service "+server:name+" request from
            server service s
      s open channel options in+out+safe+cr+lf
      if s=success
        atomic_increment server:clients_count
        if sequential or not (tcp_resource nowait_request 1)
          part service "service "+server:name+" request from
            server service s
          s close ; entry_unlock addressof:s
          s close
          atomic_add server:clients_count (-1)
        else
          safe
            thread
              part service2 "service "+server:name+" request
                share:server service s
          atomic_add server:clients_count (-1)
        else
          safe
            thread
              part service2 "service "+server:name+" request
                share:server service s
              s close ; entry_unlock addressof:s
              s close
              atomic_add server:clients_count (-1)
              tcp_resource release 1
          failure
              atomic_add server:clients_count (-1)
              tcp_resource release 1
          failure
            s close ; entry_unlock addressof:s
            s close
            atomic_add server:clients_count (-1)
            tcp_resource release 1
            console "threads overflow[lf]"
            sleep 2
            atomic_add server:clients_count (-1)
            tcp_resource release 1
            console "threads overflow[lf]"
            sleep 2
      else
        entry_unlock addressof:s
        # probably a client that sent an open connection req
        # not a server overflow
  atomic_add server:ports_count -1



  atomic_add server:ports_count -1