diff options
Diffstat (limited to 'qt/README')
-rw-r--r-- | qt/README | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/qt/README b/qt/README deleted file mode 100644 index b014b91bf..000000000 --- a/qt/README +++ /dev/null @@ -1,89 +0,0 @@ -This is a source code distribution for QuickThreads. QuickThreads is a -toolkit for building threads packages; it is described in detail in the -University of Washington CS&E Technical report #93-05-06, available via -anonymous ftp from `ftp.cs.washington.edu' (128.95.1.4, as of Oct. '94) -in `tr/1993/05/UW-CSE-93-05-06.PS.Z'. - -This distribution shows basic ideas in QuickThreads and elaborates with -example implementations for a gaggle of machines. As of October those -machines included: - - 80386 faimly - 88000 faimily - DEC AXP (Alpha) family - HP-PA family - KSR - MIPS family - SPARC V8 family - VAX family - -Configuration, build, and installation are described in INSTALL. - -Be aware: that there is no varargs code for the KSR. - -The HP-PA port was designed to work with both HP workstations -and Convex SPP computers. It was generously provided by Uwe Reder -<uereder@cip.informatik.uni-erlangen.de>. It is part of the ELiTE -(Erlangen Lightweight Thread Environment) project directed by -Frank Bellosa <bellosa@informatik.uni-erlangen.de> at the Operating -Systems Department of the University of Erlangen (Germany). - -Other contributors include: Weihaw Chuang, Richard O'Keefe, -Laurent Perron, John Polstra, Shinji Suzuki, Assar Westerlund, -thanks also to Peter Buhr and Dirk Grunwald. - - -Here is a brief summary: - -QuickThreads is a toolkit for building threads packages. It is my hope -that you'll find it easier to use QuickThreads normally than to take it -and modify the raw cswap code to fit your application. The idea behind -QuickThreads is that it should make it easy for you to write & retarget -threads packages. If you want the routine `t_create' to create threads -and `t_block' to suspend threads, you write them using the QuickThreads -`primitive' operations `QT_SP', `QT_INIT', and `QT_BLOCK', that perform -machine-dependent initialization and blocking, plus code you supply for -performing the portable operatons. For example, you might write: - - t_create (func, arg) - { - stk = malloc (STKSIZE); - stackbase = QT_SP (stk, STKSIZE); - sp = QT_INIT (stakcbase, func, arg); - qput (runq, sp); - } - -Threads block by doing something like: - - t_block() - { - sp_next = qget (runq); - QT_BLOCK (helper, runq, sp_next); - // wake up again here - } - - // called by QT_BLOCK after the old thread has blocked, - // puts the old thread on the queue `onq'. - helper (sp_old, onq) - { - qput (onq, sp_old); - } - -(Of course) it's actually a bit more complex than that, but the general -idea is that you write portable code to allocate stacks and enqueue and -dequeue threads. Than, to get your threads package up and running on a -different machine, you just reconfigure QuickThreads and recompile, and -that's it. - -The QuickThreads `distribution' includes a sample threads package (look -at stp.{c,h}) that is written in terms of QuickThreads operations. The -TR mentioned above explains the simple threads package in detail. - - - -If you do use QuickThreads, I'd like to hear both about what worked for -you and what didn't work, problems you had, insights gleaned, etc. - -Let me know what you think. - -David Keppel <pardo@cs.washington.edu> |