Hello gtk-gnutella fans,

I'm pleased to announce that I just pushed my "thread" branch to "devel"
on github.

I've been working on this "thread" branch since the beginning of December 2013.

It took almost a year of effort to bring this to a usable state, starting
from scratch: everything is built on only two low-level features:

- pthread_create() for portable thread creation.
- GCC atomics __sync_bool_compare_and_swap() and __sync_synchronize().

The remaining was built on top of these: thread creation, joining, blocking,
cancellation, various new locks and multi-threaded objects (rw locks, barriers,
asynchronous queues, condition variables, to name a few).

Once the low-level runtime was ready, gtk-gnutella was made multi-threaded.
For instance, here is the output of:

        echo thread list | gtk-gnutella --shell

on my system:

    100~
    #  Flags LCK Sigs Evts STK Usage  High Local Priv  Name
    0  -pMDR 0   0    0    76   2.73 74.48 79    37    "main"
    1  ---CS 0   0    -    32   5.16  6.90 6     1     "time"
    2  ---CS 0   0    -    32   5.37 17.04 13    0     "event queue"
    3  ---CS 0   0    -    32   5.55 16.27 17    0     "ADNS"
    4  ---CS 0   0    0    32   5.15  7.30 22    2     "verify SHA-1"
    5  ---CS 0   0    0    32   5.15  8.74 29    2     "verify TTH"
    6  ---CS 0   0    0    32   5.13  7.26 27    2     "moving"
    7  ---CS 0   0    0    32   5.15 12.07 73    1     "library"
    8  ---CR 0   0    -    32   5.30  6.26 12    0     "async shell handler"
    .

which speaks for itself, doesn't it? :-)

Of course, everything is pretty unstable, was only tested on Linux, Windows
and FreeBSD.  It's known to work on OS/X, but is not fully polished there.

If you have the opportunity and the willingness to test this "devel" branch,
I encourage you to grab the branch, compile it and run gtk-gnutella.  Let me
know of any problems, crashes, etc... although they can get very nasty within
a multi-threaded environment (read: very hard to reproduce, diagnose and debug).

I've been running the threaded gtk-gnutella since mid-December on Linux and
FreeBSD, 24x7, and I believe things are stable enough to be released for
beta testing.

As usual, enjoy!
And Happy New Year 2014 to everyone!

Raphael

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
gtk-gnutella-devel mailing list
gtk-gnutella-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel

Reply via email to