Wyllys Ingersoll wrote: > I think this whole Pth thread (no pun intended) is pretty much beaten to > death. > > GnuPG will deliver Pth as it stands, we are not modifying it to be a Solaris > thread wrapper and we are not modifying GnuPG to use Solaris threads. If > someone wants > to file an RFE and take on that work themselves later, then so be it, but it > is > not a priority and I don't see any risk or danger in putting it back in it's > current state. >
Yes, please end this conversation. The case is long since closed, and further conversations here are not fruitful. Interested parties can either open a new case (if sufficient material is present to justify one), or engage in off-line communication. As a minor aside, one of the things we should look at in whatever new tools infrastructure we examine will be a way to either "close" a case, or put it in "moderation mode", to further posting once the current PSARC chair(s) decide(s) that the conversations have either drifted too far afield or are no longer useful. - Garrett > > -Wyllys > > > > > Nicolas Williams wrote: > >> On Mon, Jul 27, 2009 at 02:00:10PM +0100, Darren J Moffat wrote: >> >>> Nicolas Williams wrote: >>> >>>> But surely there are limits. Having the GNU Pth library on the system >>>> for other apps to link with is bad. Using the GNU Pth library in GPG is >>>> >>> Why is that bad if that is what that upstream FOSS needs ? >>> >> It's only bad if on Solaris GNU Pth performs badly or provides different >> semantics than on other platforms, or if it interacts badly with Solaris >> threads. >> >> At the very least any team trying to integrate GNU Pth into Solaris, >> compilation links and all, ought to research the matter and document any >> such shortcomings. Preferably they should also have to fix such >> shortcomings, if there are any. >> >> I've no objection to GNU Pth itself, unless its API is fundamentally in >> conflict with Solaris threads. >> >> To save us a few e-mail round-trips I looked at GNU Pth just now and I >> have the following observations: >> >> - GNU Pth includes a pthread_* implementation. It would be bad for >> these symbols to conflict with libc's -- the very least that must be >> done before we deliver libpth.so is make sure that not such conflict >> arises. >> >> The best solution to that problem would be to deliver only a GNU Pth >> static link archive, not a DSO. >> >> - The build system only mentions Solaris 9, not 10, much less >> OpenSolaris. And the ChangeLog says that --disable-shared is the >> default on Solaris because Pth segfaults when built as a DSO on x86. >> >> The ChangeLog speculates that the segfault is a linker issue, but it >> may well be a matter of conflicts with libc (or, rather, libpthread, >> before S10). See previous note. >> >> - GNU Pth "uses a M:1 mapping to kernel-space threads, i.e., the >> scheduling is done completely by the GNU Pth library and the kernel >> itself is not aware of the M threads in user-space", according to >> wikipedia. Given this I don't think we should worry about GNU Pth >> performing worse on Solaris than on other operating systems. >> >> Adding concurrency is likely to break some apps, so a replacement for >> Pth based on POSIX/Solaris APIs should not be taken lightly, but if >> one were to try, the notes below might be useful. This convinces me >> that we should deliver GNU Pth with changes only to avoid symbol >> conflicts with libc. >> >> - The pth_* API can be implemented in terms of POSIX >> straightforwardly, except, _perhaps_, for pth_ctrl(), which deals >> explicitly with scheduler concepts -- a POSIX-based implementation >> might have to fake: >> >> - PTH_CTRL_GETTHREADS -- should this count non-pth threads? >> - PTH_CTRL_GETTHREADS_*, PTH_CTRL_GETAVLOAD, PTH_CTRL_FAVOURNEW >> -- these can't really be implemented in terms of POSIX without >> additional kernel APIs, I think (but I could be wrong). >> - PTH_CTRL_GETNAME -- no concept of thread names in POSIX, may >> need to add a name attribute. >> >> - Some Pth thread attributes have no POSIX equivalent (e.g., thread >> name, time spawned, ...). >> >> - Pth event handling can be implemented in terms of POSIX or Solaris >> APIs such as event ports. Should be straightforward, but not a >> trivial one-liner for every Pth event function. >> >> - Most Pth functions could be implemented as trivial one-or-three- >> liners that call POSIX and/or Solaris equivalents. >> >> Cheers, >> >> Nico >> > >