Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-54

UnixNet cleanup, encapsulation of event subsystem

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • sometime
    • Cleanup, Network
    • None
    • all unixesque

    Description

      The UnixNet subsystem was modified for epoll, but lots of the old data structures, data members and code
      remain for the old "bucket" approach.

      The epoll code should also be encapsulated to simplify support for other platforms and a possible move
      to an event library.

      The current code is complicated by limitations in Queue which require specifying the link field for every
      use, but which can be fixed by in the template.

      Finally, the current code does an unnecessary allocation for the epoll struct which should be part of the NetVConnection etc.
      and it takes a lock for the enable_queue which can be avoided by using the non-locking AtomicSSL.

      This work is also good preparation for evaluating libev or libevent as it will reduce the amount of code which
      will have to be changed.

      Attachments

        1. proposed-jp-v1-List.h
          19 kB
          John Plevyak
        2. ts-List_and_net-cleanup-jp-v1.patch
          174 kB
          John Plevyak
        3. ts-List-net-cleanup-jp-v2.patch
          179 kB
          John Plevyak

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jplevyak John Plevyak
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 72h
                  72h
                  Remaining:
                  Remaining Estimate - 72h
                  72h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified