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