git-annex/Assistant
Joey Hess fe96b28b4d convert the assistant to use a bound thread for XMPP
This *may* solve the segfault I was seeing when the XMPP library called
startTLS. My hypothesis is as follows:

* TLS is documented
  (http://www.gnu.org/software/gnutls/manual/gnutls.html#Thread-safety)
  thread safe, but only when a single thread accesses it.
* forkIO threads are not bound to an OS thread, so it was possible for
  the threaded runtime to run part of the XMPP code on one thread, and
  then switch to another thread later.

So, forkOS, with its bound threads, should be used for the XMPP thread.
Since the crash doesn't happen reliably, I am not yet sure about this fix.

Note that I kept all the other threads in the assistant unbound, because
bound threads have significantly higher overhead.
2012-10-25 15:47:27 -04:00
..
Install ifdef osx includes 2012-09-28 19:18:08 -04:00
Pairing webapp: Switched to using the same multicast IP address that avahi uses. 2012-10-22 15:50:30 -04:00
Threads convert the assistant to use a bound thread for XMPP 2012-10-25 15:47:27 -04:00
WebApp One more #ifdef WITH_S3 2012-10-18 12:43:24 -04:00
Alert.hs hlint 2012-09-13 00:57:52 -04:00
BranchChange.hs use a newtype for better type safety 2012-10-24 13:15:31 -04:00
Changes.hs always check with ls-files before adding new files 2012-10-02 17:41:23 -04:00
Commits.hs license 2012-06-23 01:20:40 -04:00
Common.hs display errors when any named thread crashes 2012-09-06 14:56:04 -04:00
DaemonStatus.hs better variable name 2012-10-14 14:50:03 -04:00
Drop.hs check and drop after uploads 2012-10-18 16:05:43 -04:00
Install.hs ifdef osx includes 2012-09-28 19:18:08 -04:00
MakeRemote.hs make repo description optional 2012-10-14 16:32:55 -04:00
Pairing.hs hlint 2012-09-13 00:57:52 -04:00
Pushes.hs initial implementation of XMPP push notifier (untested) 2012-10-24 15:42:02 -04:00
ScanRemotes.hs scan multiple remotes in one pass 2012-08-26 14:09:02 -04:00
Ssh.hs webapp: Allow dashes in ssh key comments when pairing. 2012-10-22 11:18:19 -04:00
Sync.hs pull from one of the remotes in a push notification 2012-10-24 16:21:45 -04:00
ThreadedMonad.hs fork off git-annex copy for transfers 2012-08-10 14:14:08 -04:00
TransferQueue.hs reorder 2012-10-14 15:09:37 -04:00
TransferSlots.hs TransferSlots: Use SafeSemaphore's MSemN instead of QSemN from base 2012-10-05 17:02:51 -04:00
WebApp.hs nub the autostart file 2012-10-14 15:19:34 -04:00