[Libreoffice-commits] online.git: Changes to 'private/Ashod/nonblocking'

Ashod Nakashian ashod.nakashian at collabora.co.uk
Mon Feb 13 06:41:17 UTC 2017


New branch 'private/Ashod/nonblocking' available with the following commits:
commit bbb38c39c9738738597f4c13788e79a0ebca4f44
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Mon Feb 13 00:40:03 2017 -0500

    nb: gitingore loolnb
    
    Change-Id: I41ed294ce61cb92af065d9fc72e3b35a20be0012

commit 2c431de2089a0c5897d951768996744ee42fdbeb
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sun Feb 12 15:54:49 2017 -0500

    nb: support N clients and asynchronously communicate with all
    
    Change-Id: I81f63895180141e554072b6cf5300139299f282c

commit 50338452c405c0fee0f243cba498c1179945c367
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sun Feb 12 14:44:14 2017 -0500

    nb: poll using multi-socket poll class SocketPoll
    
    Change-Id: If244c4ec92f70fd458665b88d4da3c5fbcb11077

commit 4fc1464f84312abe25198f23b102e62fa89915ca
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sun Feb 12 14:26:42 2017 -0500

    nb: SocketPoll class to poll events on N-Sockets
    
    Internally SocketPoll manages the sockets
    and handles the polling and firing of callback.
    
    It's thread-safe and handles asynchronous calls
    to remove sockets correctly while potentially
    being in poll(2).
    
    The choice for using poll(2) compared to epoll
    or select are the following:
    
    1. For our use-case, poll(2) works great up to
       a few hundred sockets, which we don't expect
       to have on a single document normally.
    
    2. select(2) has an awkward API (modifies input,
       f.e) and has limit on max fds that we need to
       be mindful of (even if we'll not hit it in
       practice). poll(2) preserves the input and has
       a no-nonsense API that's simple and readable.
    
    3. While select(2) is the most portable, poll(2)
       isn't far behind. Yet in practice we'll probably
       not support other systems than Linux.
    
    4. epoll(2) starts to scale with hundreds or
       thousands of sockets. Meanwhile, it has high
       overhead to adding/removing sockets (context
       switch to kernel and back). Our typical case
       will have a handful to a dozen sockets.
       Hardly a justification for epoll's heavy guns.
    
    Change-Id: Idf88257ea85e061a37af29eed21e38655ff43c9b

commit 104fa19de0f799e3dc0827e19522c709fda2fee9
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sun Feb 12 00:43:19 2017 -0500

    nb: ping-pong messages between client and server
    
    Change-Id: I3856dde09764075a138e8574520487e6e5accd90

commit 47cda23d143a8db1ef7d5fb83edadd996709e678
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 23:47:41 2017 -0500

    nb: Socket connect supports waiting with timeout
    
    Change-Id: Ib2d713d68f3a27067b121adb356188a164da4589

commit 1fa95d8e4f83d84860f415582d0ad5c921dba83a
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 23:48:21 2017 -0500

    nb: server now accepts asynchronously
    
    Change-Id: Ic98f31d4f432fc8a06690b94899314b7c9106c69

commit 400614854051b40ddda1bb045e44af22b8cd00fe
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 23:36:53 2017 -0500

    nb: connect and read asynchronously
    
    Change-Id: I04733f8dbf06f5f31e6b05e7f017ef75c629a015

commit 0657942c95817042e52a07825c7c16373525084f
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 23:35:22 2017 -0500

    nb: add polling to Socket
    
    Change-Id: Ie3fd1f271d9c6fa24e8583316e68a443489d1967

commit 9cfa78cbfb8f2bd6471675d22b0905480a278f79
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 23:33:51 2017 -0500

    nb: add socket error getter
    
    Change-Id: Ia0dfd1d6e6bfd2b34b5a9b01c883d78f9bb15e7d

commit f3131db126ff5f985ef9a5280c846bf8d65f3e63
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 20:00:53 2017 -0500

    nb: Socket fd member is const
    
    Change-Id: Icc7f4d9bbd15ce0feb3a58339771fbfd168e20e5

commit 1bac06baade6e2bc83d93b789120191f38348a18
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 18:37:56 2017 -0500

    nb: add recv and client connection
    
    Change-Id: I311a475428ff410ca26f6049d5371943aa88cc59

commit 2de3540b58978b16eb9f7c68f9d9825ee35de548
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 18:21:57 2017 -0500

    nb: accept connections and send
    
    Change-Id: Ie99b8c15e097fcaca0675aba11e11a11c2e7098f

commit 1bba7d05f83a205d5033f9e5c8d9546d94517c9e
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 18:17:09 2017 -0500

    nb: bind reuses address automatically
    
    This is virtually always desirable, since
    without it we may fail to bind after recycling
    if the previous socket is TIME_WAIT.
    
    However, if a socket is bound to same address
    this will not prevent the failure to bind,
    and we'll detect that the address/port is busy.
    
    So the advantage is in minimizing recycling time.
    
    Change-Id: Ib3bbbf7065f9822acfbd2d7f8ff3e8951739c0ef

commit 185e0c7ce917616e013c226e281b1279fb2464de
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 18:16:39 2017 -0500

    nb: Socket doesn't throw on failures and better doc
    
    Change-Id: I125c417c5d9e1a3f40ec386f4871bf6cf2c56ac8

commit 6083c5c14c679bcb3bc42f010d41e9b1cb1c9460
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 16:19:29 2017 -0500

    nb: Socket supports listen and accept
    
    Change-Id: I210ee7843f9ff977fde719773b920f1c9c720598

commit 7406d0665b90e08589a699a44c5a379ec9b91af3
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 15:13:14 2017 -0500

    nb: add Socket class
    
    The new socket class is implicitly
    non-blocking, streaming, ipv4 socket.
    
    Ipv6 to be added later, as necessary.
    
    Change-Id: I722cc63ea97394d47a50b733c58a69cc1529d815

commit b66edf67bf230a8a118f288183222514620d87f3
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Feb 11 12:13:31 2017 -0500

    nb: add new loolnb program
    
    Change-Id: Ib08ff3cdc037876e9c53b87603140b3c603ee916



More information about the Libreoffice-commits mailing list