Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4636752

(se) Allow multiplexing in blocking mode

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • 1.4.0
    • core-libs
    • x86
    • windows_98



      Name: rmT116609 Date: 02/12/2002


      FULL PRODUCT VERSION :
      java version "1.4.0-rc"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-rc-b91)
      Java HotSpot(TM) Client VM (build 1.4.0-rc-b91, mixed mode)

      DESCRIPTION OF THE PROBLEM :

      Selectors can only be used on channels in non-bocking mode. This makes it impossible, or at least very inconvenient, to use a multiplexed channel for DataInput- or ObjectInput-style I/O, because the required blocking modes
      presently conflict.

      Multiplexing on blocking-mode channels is the dominant mode of usage in Unix network programming. The present multiplexing semantics make it almost useless except for file servers (e.g. Web servers) and simple services like
      echo/date/time &c where the benefits of multiplexing at at best marginal.

      The present semantics do not correspond to the semantics of poll()/select(), which all allow blocking mode, even in WINSOCK, and which are used in this way in I would suggest well over 90% of cases. Rather, it appears to stem from the
      semantics of WINSOCK WSAsyncSelect, which forces non-blocking mode on the FD supplied. However this is the wrong API to be calling anyway, as it suppresses
      duplicate events, this being the cause of bug 4628289 and several other bugs and problems in this area, e.g. the present inability of Selector to detect a remote shutdown or close after a read event under Win32.


      (Review ID: 139569)
      ======================================================================

            alanb Alan Bateman
            rmandalasunw Ranjith Mandala (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: